1:如果數據庫表字段的字符編碼是latin1_swedish_ci
select * from tablename order by birary(name) asc ;
tablename:數據庫表名
name:排序字段名
birary不是函數,是類型轉換運算符,它用來強制它后面的字符串為一個二進制字符串,可以理解為在字符串比較的時候區分大小寫
2:如果數據庫表字段的字符編碼是utf8_general_ci(常用)
select * from tablename WHERE 1=1 order by CONVERT( name USING gbk ) COLLATE gbk_chinese_ci ASC
首先,對name字段進行gbk編碼,然后,對編碼后的內容根據gbk_chinese_ci進行整理排序。這樣得到的結果,英文是排在中文前面的,而且是根據拼音排序的。
tablename:數據庫表名
name:排序字段名
CONVERT:提供一個在不同字符集之間轉換數據的方法。
COLLATE:COLLATE是一個算法語句,主要用於對字符進行排序,經常出現在表的創建語句中。sql語句里面的COLLATE主要用於對字符進行排序。
---------------------
版權聲明:本文為CSDN博主「天才小小布」的原創文章,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/w410589502/article/details/58049091