MYSQL自定义排序
来源:互联网 发布:c语言参考手册 pdf 编辑:程序博客网 时间:2024/06/05 06:15
问题描述
大家都知道, MySQL 中按某字段升序排列的 SQL 为 (以 id 为例, 下同):
SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY `id` ASC
降序排列的 SQL 为:
SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY `id` DESC
有时以上排序并不能满足我们的需求. 例如, 我们想要按 id 以 5, 3, 7, 1 的顺序排列, 该如何实现. 这也是很多国内外同行经常遇到的问题之一.
下面我们给出按表中某字段, 以我们想要的列表方式排序的解决方案.
解决方案
用"按字段排序" (ORDER BY FIELD).
语法
ORDER BY FIELD(`id`, 5, 3, 7, 1)
要注意的是, FIELD 后面是没有空格的.
因此, 完整的 SQL 为:
SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY FIELD(`id`, 5, 3, 7, 1)
常见应用
SELECT * FROM `MyTable` WHERE `name` IN ('张三', '李四', '王五', '孙六') ORDER BY FIELD(`name`, '李四', '孙六', '张三', '王五')
参考资料
Handy MySQL - ORDER BY FIELD
Sort results by order in list
0 0
- mysql 自定义排序顺序
- mysql实现自定义排序
- MySql自定义排序
- MYSQL自定义排序
- mysql 自定义排序
- MySQL自定义排序
- mysql 自定义排序规则
- Mysql多列加自定义排序
- mysql自定义排序
- mysql中字段自定义排序
- MySQL自定义排序函数FIELD()
- MySQL自定义排序函数FIELD()
- MySQL自定义排序函数FIELD()
- MySQL自定义排序函数FIELD()
- mysql 中自定义变量排序
- MySQL自定义排序函数FIELD()
- MySQL自定义排序去重
- MySQL自定义排序函数 field()
- 玩转Xcode之修改系统生成的注释模板
- Android 学习之Fragment的创建
- 驱动程序如何手动卸载与更新
- 数据结构实验之队列一:排队买饭
- Automatic Preferred Max Layout Width is not available on iOS versions prior to
- MYSQL自定义排序
- jQuery_统计图插件-jscharts
- fuel-6.1 iso制作
- 命令行svn commit时,注释怎么实现换行效果?
- 数据库内搜索问题
- 状态模式
- :before和:after的一些惊人用法
- Geocoding API v2.0
- PAT 1022. Digital Library (30)