前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySql自定义排序规则--Java学习网

MySql自定义排序规则--Java学习网

作者头像
用户1289394
发布2021-07-09 11:57:57
1.1K0
发布2021-07-09 11:57:57
举报
文章被收录于专栏:Java学习网

有三个函数(order by field,ORDER BY INSTR,ORDER BY locate)

FIELD函数

格式:field(value,str1,str2,str3,str4),value与str1、str2、str3、str4比较,返回1、2、3、4,如遇到null或者不在列表中的数据则返回0.

SELECT * FROM user order by field(id,2,3,5,4) desc

结果显示顺序:4 5 3 2 1 6

id uname passwd

4 dd dd 5 ee ee 3 cc cc 2 bb bb 1 aa aa 6 ff ff

INSTR(字段名, 字符串)

这个函数返回字符串在某一个字段的内容中的位置, 没有找到字符串返回0,否则返回位置(从1开始).

SELECT * FROM user ORDER BY INSTR( ’2,3,5,4′, id ) ASC

结果显示顺序:1 6 2 3 5 4

1 aa aa 6 ff ff 2 bb bb 3 cc cc 5 ee ee 4 dd dd

SELECT * FROM user ORDER BY INSTR( ’2,3,5,4′, id ) DESC

结果显示顺序:4 5 3 2 1 6

4 dd dd 5 ee ee 3 cc cc 2 bb bb 1 aa aa 6 ff ff

SELECT * FROM user ORDER BY locate( id, ’2,3,5,4′ ) ASC

结果显示顺序:1 6 2 3 5 4

1 aa aa 6 ff ff 2 bb bb 3 cc cc 5 ee ee 4 dd dd

SELECT * FROM user ORDER BY locate( id, ’2,3,5,4′ ) DESC

结果显示顺序:4 5 3 2 1 6

4 dd dd 5 ee ee 3 cc cc 2 bb bb 1 aa aa 6 ff ff

如我想要查找的数据库中的ID顺序首先是(2,3,5,4)然后在是其它的ID顺序,你首先要把他降序排即(4 5 3 2),然后在SELECT * FROM user order by field(id,4,5,3,2) DESC 或 SELECT * FROM user ORDER BY INSTR( ’4,5,3,2′, id ) DESC 或用 SELECT * FROM user ORDER BY locate( id, ’4,5,3,2′ ) DESC 就得到你想要的结果了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档