问题描述

大家都知道, 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`, '李四', '孙六', '张三', '王五')

转载于:https://www.cnblogs.com/shihao/archive/2011/09/01/2162116.html

MySQL 按指定字段自定义列表排序相关推荐

  1. mysql 预留一个自定义字段_MySQL 按指定字段自定义列表排序 | DevOps

    问题描述 大家都知道, MySQL 中按某字段升序排列的 SQL 为 (以 id 为例, 下同): SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ...

  2. mysql将字符串字段转为数字排序或比大小

    SELECT * FROM Student WHERE 1 = 1 ORDER BY -ID DESC ; SELECT * FROM Student WHERE 1 = 1 ORDER BY (ID ...

  3. Mysql字符串截取 mysql将字符串字段转为数字排序或比大小

    SELECT * FROM Student WHERE 1 = 1 ORDER BY -ID DESC ; SELECT * FROM Student WHERE 1 = 1 ORDER BY (ID ...

  4. mysql 查询指定字段数据_MySQL使用select语句查询指定表中指定列(字段)的数据

    本文介绍mysql数据库中执行select查询语句,查询指定列的数据,即指定字段的数据. 再来回顾一下sql语句中的select语句的语法: select 语句的基本语法: select from w ...

  5. mysql去除指定字段里的最后一个字符

    mysql小知识: 前言:在工作时,发现之前采集的数据保存路径有问题.错误如下: PDF\000003\2023\1\10.1021@j2c10916.pdf\ 相信大家能看懂,后面多了个\杠,正常路 ...

  6. mysql 按照指定字段的指定数据进行排序 filed函数

    filed函数 filed(coulmn,str1,str2,str3-) tableA中有某一列columA,该列的值包含(0,1,2,3,4,5)  当前的需求为查询结果不包含3和5,且按2,1, ...

  7. MySQL查询指定字段

    MySQL,可以在SELECT语句的字段列表中指定,要查询的字段. SELECT 字段名1,字段名2,-- FROM 表名: 查询student表中,name字段和gender字段的数据 注意,如果在 ...

  8. mysql orderby 指定值_首先在MySQL中指定字段值ORDER BY

    要先在MySQL中按特定字段值排序,请使用ORDER BY FIELD().让我们首先创建一个表-mysql> create table DemoTable849(Color varchar(1 ...

  9. mysql 替换函数replace()实现mysql替换指定字段中的字符串

    update table_name field_name = REPLACE(field_name,"from_str ","to_str ")  where  ...

最新文章

  1. ArrayList源码学习
  2. html语言字体是否依赖客户端,【前端面试】HTML5+CSS3初级面试1
  3. hive 调优(一)coding调优
  4. webpack 从 0 到 1 构建 vue
  5. vue问题四:富文本编辑器上传图片
  6. 配置修改Nginx支持 PATHINFO
  7. Windows下svn服务器安装
  8. 《推荐系统实战(二)》音乐推荐系统(数据清洗、召回、排序)
  9. pthread_create()在C和C++使用区别
  10. 无法启动此程序 因为计算机中丢失hypertrm.dll,开机弹出找不到HYPERTRM.dll
  11. 【vue源码工程阅读1:下载源码】认识工程并打包
  12. 小白windows内网离线部署宝塔面板
  13. HRBUST1313 火影忍者之~静音
  14. 【电子存证】互联网企业存证需求与痛点
  15. 2021ASC超算竞赛QuEST配置与实战(量子计算)
  16. 美团技术总结:Java中9种常见的CMS GC问题分析与解决
  17. 美国搜索市场之战 微软终于战胜雅虎
  18. AngularJs ng-options
  19. 周易正易 (2001刊行本影印_易經大意)
  20. 常用的python库

热门文章

  1. codeforce 1311 C. Perform the Combo 前缀和
  2. 图论--最短路-- Dijkstra模板(目前见到的最好用的)
  3. 【Ubuntu16.04-opencv3.4.0-FDDB Evaluation】评测代码使用中遇到对‘cvxxx’未定义的引用问题
  4. PHP-ExcelReader
  5. C#中的is、as及转换
  6. Windows7上安装TensorFlow——基于Docker镜像
  7. Makefile学习资料及书籍推荐
  8. 我以为信用卡多就是好事,谁知道……
  9. Xilinx_ISE和ModelSim的联合使用方法 / 从Xilinx ISE 14.7启动ModelSim时遇到的问题
  10. android 清空所有控件,如何清空android ListView控件的内容