分類: 程式設計筆記

如何在 MySQL 中讓欄位依中文筆畫排序?

當資料庫是使用UTF-8編碼時,若有A欄位是中文,且要依此欄位進行排序,將會造成排序可能不如預期之現象。而資料庫的編碼格式是UTF-8,因此將會依UTF-8的編碼來排序,而不會依我們所預期的Big-5來排序。而在知道原因後,要解決此問題就變得相對容易,只要在排序時,將排序的欄位轉為BIG-5就可以依筆畫排序了。而這個轉換的利器,就是「CONVERT(欄位名稱 using big5)」。

舉例來說,若有一個資料表「test」中的欄位是這樣的內容:

id name
1 國立大甲高中
2 國立大里高中
3 市立內湖高中
4 國立中和高中

如果要依「name」來遞減排序,只要用下列程式碼就可以了。

SELECT * FROM `test` WHERE 1 order by CONVERT(`name` using big5) desc

 

Continue reading

[PHP] 查詢系統路徑分隔符號

由於 Windows 和 Linux 的程式寫法稍有差異,再加上 Linux 和 Windows 的系統分隔符號不同,所以利用 php 內建的變數,來查詢系統的分隔符號,進而拚出檔案路徑,是一個實用且常見的做法。

而以下為一個簡單的範例程式碼:

<?php 
define('DS', DIRECTORY_SEPARATOR);
if(DS=="\\")
    echo "OS is windows";
else if(DS=="/")
   echo "OS is Unin-like";
else
   echo "OS is Unknown";
?>

 

Continue reading