MySQL常規排序 自定義排序和按中文拼音字母排序

2021-12-30 01:36:49 字數 842 閱讀 5388

mysql常規排序、自定義排序和按中文拼音字母排序,在實際的sql編寫時,我們有時候需要對條件集合進行排序。

下面給出3中比較常用的排序方式,mark一下

asc 正序

desc倒敘

-- 此處不用多講

自定義排序是根據自己想要的特定字串(數字)順序進行排序。

主要是使用函式 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 -- 保證只滿足條件的進行排序

如果表字段使用的gbk編碼的話,我們可以直接order by value ,因為gbk本身就是按照拼音字母排序abcdefghigk...,當第一位相同的時候會比較第二位,以此類推。 如果表字段使用的utf-8編碼的話,通常我們都會的編碼,這樣我們可以使用mysql的convert方法開轉換gbk進行排序。

eg:select * from test order by convert(value using gbk) asc/desc

MySQL自定義排序

select from table where id in 2,3,4,1,5 order by field id,2,3,4,1,5 select from table where id in 2,3,4,1,5 order by field id,2,3,4,1,5 asc select fro...

mysql自定義排序

1 mysql自定義排序,指定排序輸出 select case when ajj whcd then 未知 when ajj whcd in 初中 中學 then 初中 when ajj whcd in 中專 中技 中專 中技 中師 技工 技校 普高 職專 職中 高中 高中?then 高中 when...

Mysql自定義排序

mysql自定義排序 最近做專案時碰到乙個排序的問題,資料庫中有乙個字段需要按照 0,1,1 的順序來查詢資料庫。無論是正序還是逆序都滿足不了要求,經過查詢,下面的方法可以滿足要求 select from user order by field status 0,1 1 order by field...