MySQL常規排序、自設定排序和按中文拼音字母排序,在實際的SQL編寫時,我們有時候需要對條件集合進行排序。
下面給出3中比較常用的排序方式,mark一下
1.常規排序ASC DESC
ASC 正序
DESC倒敘
— 此處不用多講
2.自設定排序
自設定排序是根據自己想要的特定字符串(數字)順序進行排序。
主要是使用函數 FIELD(str,str1,str2,str3,…)
MySQL的自設定排序,str與str1、str2、str3…進行比較,並按照str1,str2,str3…的順序輸出,如果遇到str為null或者不存在str1,str2,str3…中的情況的則序列為0,
eg:
SELECT * FROM TEST ORDER BY FIELD(value,'test1','test2','test3','test4') ASC/DESC
eg2:
SELECT * FROM TEST WHERE VALUE IN('test1','test2','test3','test4') ORDER BY FIELD(value,'test1','test2','test3','test4') ASC/DESC — 保證隻滿足條件的進行排序
3.按中文拼音字母排序
如果表字段使用的GBK編碼的話,我們可以直接order by value ,因為GBK本身就是按照拼音字母排序ABCDEFGHIGK…,當第一位相同的時候會比較第二位,以此類推。 如果表字段使用的UTF-8編碼的話,通常我們都會的編碼,這樣我們可以使用MySQL的convert方法開轉換gbk進行排序。
eg:SELECT * FROM TEST ORDER BY CONVERT(value USING GBK) ASC/DESC