MySQL------自定义排序
创始人
2024-05-26 12:19:14
0

1、MySQL函数 field() 实现自定义

语法: SELECT * from table_name ORDER BY FIELD(str,str1,str2,str3,…)
str: 字段名,
str1,str2,str3: 自定义排序的数值

例1排序-所有值:
先姓名排序后出生日期排序

SELECT * from name_info ORDER BY FIELD(name,"张三","小明","小刘"),date_birth

例2排序-部分值:
张三,小明排序后,其余姓名按照出生日期排序

SELECT * from name_info ORDER BY FIELD(name,"张三","小明"),date_birth

2、MySQL函数Locate()

功能:判断字符串中是否包含字符串
语法:SELECT * from table_name WHERE LOCATE(substr, str, startPos)
LOCATE(substr, str, startPos)

substr:必需的。 在 str 中搜索的子串。
str:必需的。 被搜索的字符串。
startPos:可选的。 在 str 中开始搜索的位置,从 1 开始。
返回值:LOCATE() 函数返回子字符串 substr 在字符串 str 中的位置的数字索引。数字索引从 1 开始。如果在 str 中找不到 substr,LOCATE() 函数将返回 0。

例:
locate函数返回的是substr在str的位置

SELECT * from name_info ORDER BY LOCATE(name,"张三,小明,小刘")

3、MySQL case(when)

语法:

CASE value
WHEN compare_value THEN result
[WHEN compare_value THEN result ...]
[ELSE result]
END

value:可选
CASE 语句返回 condition 为真或者 value = compare_value 为真的 THEN 子句中指定的值。
例:

SELECT name  from name_info 
order by 
case name 
when "张三" then 1 
when "小明" then 2 
when "小刘" then 3 
else 0 
end

使用case when 将字段中的张三,小明,小刘转换为1,2,3,这样在我们再使用order by实现数据的自定义重排

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...