在MySQL的查詢語句中,可以經常使用ORDER BY子句對結果集進行排序。但是,有時候按照名稱(如字符串類型)排序的時候,會發現排序不生效。
原因是MySQL默認對字符串類型的排序是根據二進制值進行排序的。這意味著在不同的字符集下,同一個字符的排序結果是不同的。
如果要按照名稱排序,需要使用COLLATE關鍵字指定排序規則。例如:
SELECT name FROM my_table ORDER BY name COLLATE utf8_general_ci;
這里使用了utf8_general_ci規則進行排序,它是一種不區分大小寫的基于Unicode的排序規則。如果需要按照大小寫進行排序,可以使用utf8_bin規則。
需要注意的是,指定排序規則會帶來額外的性能開銷。因此,如果表中的數據量很大,建議在表創建時就指定好排序規則。
下一篇時鐘羅盤css