下面是本人关于mysql 自定义排序(field,INSTR,locate)的一点心得,希望对大家有所帮助
首先说明这里有三个函数(order by field,ORDER BY INSTR,ORDER BY locate)
原表:
id user pass
1 aaa aaa
2 bbb bbb
3 ccc ccc
4 ddd ddd
5 eee eee
6 fff fff
下面是我执行后的结果:
SELECT * FROM `user` order by field(2,3,5,4,id) asc
id user pass
1 aaa aaa
3 ccc ccc
4 ddd ddd
5 eee eee
6 fff fff
2 bbb bbb
根据结果分析:order by field(2,3,5,4,1,6) 结果显示顺序为:1 3 4 5 6 2
SELECT * FROM `user` order by field(2,3,5,4,id) desc
id user pass
2 bbb bbb
1 aaa aaa
3 ccc ccc
4 ddd ddd
5 eee eee
6 fff fff
根据结果分析:order by field(2,3,5,4,1,6) 结果显示顺序为:2 1 3 4 5 6

SELECT * FROM `user` ORDER BY INSTR( '2,3,5,4', id ) ASC
id user pass
1 aaa aaa
6 fff fff
2 bbb bbb
3 ccc ccc
5 eee eee
4 ddd ddd
根据结果分析:order by INSTR(2,3,5,4,1,6) 结果显示顺序为:1 6 2 3 5 4
SELECT * FROM `user` ORDER BY INSTR( '2,3,5,4', id ) DESC
id user pass
4 ddd ddd
5 eee eee
3 ccc ccc
2 bbb bbb
1 aaa aaa
6 fff fff
根据结果分析:order by INSTR(2,3,5,4,1,6) 结果显示顺序为:4 5 3 2 1 6
SELECT * FROM `user` ORDER BY locate( id, '2,3,5,4' ) ASC
id user pass
1 aaa aaa
6 fff fff
2 bbb bbb
3 ccc ccc
5 eee eee
4 ddd ddd
根据结果分析:order by locate(2,3,5,4,1,6) 结果显示顺序为:1 6 2 3 5 4
SELECT * FROM `user` ORDER BY locate( id, '2,3,5,4' ) DESC
id user pass
4 ddd ddd
5 eee eee
3 ccc ccc
2 bbb bbb
1 aaa aaa
6 fff fff
根据结果分析:order by locate(2,3,5,4,1,6) 结果显示顺序为:4 5 3 2 1 6
如我想要查找的数据库中的ID顺序首先是(2,3,5,4)然后在是其它的ID顺序,你首先要把他降序排即(4 5 3 2),然后在 SELECT * FROM `user` ORDER BY INSTR( '4,5,3,2', id ) DESC limit 0,10 或用 SELECT * FROM `user` ORDER BY locate( id, '4,5,3,2' ) DESC 就得到你想要的结果了。
id user pass
2 bbb bbb
3 ccc ccc
5 eee eee
4 ddd ddd
1 aaa aaa
6 fff fff

转载于:https://www.cnblogs.com/wangbin/archive/2011/02/12/1951810.html

MYSQL自定义排序相关推荐

  1. MySQL自定义排序函数FIELD()

    转载自:https://blog.csdn.net/lxz3000/article/details/6173873 MySQL可以通过field()函数自定义排序 格式: field(value,st ...

  2. mysql 自定义排序函数_MySQL自定义排序函数FIELD()

    MySQL可以通过field()函数自定义排序,格式:field(value,str1,str2,str3,str4),value与str1.str2.str3.str4比较,返回1.2.3.4,如遇 ...

  3. mysql自定义排序以及优化like模糊查询

    **1. 自定义排序函数FIELD()**SELECT id,username,city FROM sy_user order byFIELD(city,'郑州', '开封', '平顶山','洛阳', ...

  4. MYSQL 自定义排序

    在mysql order by排序中,大多数情况下仅使用默认排序规则就够了:字符串按字典顺序,数字按大小等等.可有时候,某个字段是有自身业务含义的,比如 type(1,2,3)可能表示早/中/晚,如果 ...

  5. mysql order field_mysql 使用order by filed,locate和instr自定义排序

    mysql 使用order by filed,locate和instr自定义排序 发布时间:2018-05-22 11:41, 浏览次数:3094 , 标签: mysql自定义排序 问题描述 大家都知 ...

  6. mysql自动排序_mysql自动排序

    最近在写一个项目,在项目中有一个要求是按照指定的用户指定顺序,对数据进行排序!网上百度了一下,感觉还是挺有用的,但是不是很清楚工作原理! mysql的field()函数 filed(s,s1,s2.. ...

  7. 数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法

    数据库中自定义排序 场景:有一张banner表,表中有一个status字段,有0, 1, 2三个状态位,我想要 1,0,2的自定义排序(这里是重点),然后再进行之上对sequence字段进行二次排序( ...

  8. mysql自定义两个条件排序_使用MySQL中的两个不同列进行自定义排序?

    为此,将ORDER BY子句与CASE语句一起使用.让我们首先创建一个表-mysql> create table DemoTable1610 -> ( -> Marks int, - ...

  9. mysql按中文拼音字母排序_解析MySQL按常规排序、自定义排序和按中文拼音字母排序的方法...

    MySQL常规排序.自定义排序和按中文拼音字母排序,在实际的SQL编写时,我们有时候需要对条件集合进行排序.下面给出3种比较常用的排序方式,一起看看吧 MySQL常规排序.自定义排序和按中文拼音字母排 ...

最新文章

  1. Qt 工程 pro文件
  2. MapReduce基础开发之四参数传递
  3. linux+用户的shell,linux更换用户_更改linux用户登录shell的方法
  4. 根据窗口名获取进程句柄和PID
  5. Pytorch MNIST直接离线加载二进制文件到pytorch
  6. Confluent Platform 3.0支持使用Kafka Streams实现实时的数据处理(最新版已经是3.1了,支持kafka0.10了)...
  7. 为什么要学 Flink,Flink 优势在哪?
  8. 2018.09.19python学习第七天part1
  9. 好评率超高的几个硬核公众号,99%的程序员都关注了!
  10. 无连续重复的随机算法
  11. liunx安装和部署nacos
  12. golang使用Nsq
  13. VS2017 CUDA编程学习实例3:CUDA实现直方图统计
  14. Ch6 深度前馈神经网络
  15. android应用程序耗电,Android的十大耗电量应用程序,在软件中排名第一
  16. 基于单片机的加油机系统
  17. 各种手机的User-Agent
  18. 20 步打造完美网站布局设计
  19. 如何在头条做好影视解说自媒体?
  20. 制作水晶报表基本步骤

热门文章

  1. c++ try_catch throw
  2. mtc: manufacturing technology center
  3. HOMEBREW安装之后需要需要把他安装到路径之中
  4. U3D笔记11:47 2016/11/30-15:15 2016/12/19
  5. linux三剑客之awk (用于个人学习以及回顾)
  6. 【科普】OSS存储的基本操作
  7. java-第七章-数组-循环输出
  8. 《敏捷企业》作者访谈录
  9. 从零开始山寨Caffe·壹:仰望星空与脚踏实地
  10. 用NFS挂载root出现:NFS: failed to create MNT RPC client, status=-101(-110)