MySQL 按指定字段自定义列表排序的实现
作者:jingxian 发布时间:2024-01-16 08:09:22
标签:mysql,自定义,列表,排序
问题描述
大家都知道, 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`, '李四', '孙六', '张三', '王五')


猜你喜欢
- 1.列表推导式书写形式:[表达式 for 变量 in 列表] 或者 [表达式 for 变量
- 本文实例讲述了python实现自动登录人人网并访问最近来访者的方法,分享给大家供大家参考。具体方法如下:##-*- coding : gbk
- 一、argparse简介argparse 是 python 自带的命令行参数解析包,可以用来方便的服务命令行参数,使用之前需要先导入包 im
- windows.open()方法详解:window.open(URL,name,features,replace)用于载入指定的URL到新的
- input标签checkbox,change和click绑定事件的区别我们经常在vue开发项目的过程中,遇到需要对input框使用v-mod
- 在添加新记录时,有时候我们需要将部分动态内容自动添加到指定的文本域,例如上传一个文件后,将文件名自动添加到一个独立的记录框内,以
- Pytorch的backward()函数假若有多个loss函数,如何进行反向传播和更新呢? x = torch.tensor(2.0, re
- 最近在为公司做一个门户网站,项目并不咋D,可规划却不小.在做的过程中就发现修改占了很大的工作量.于是就开始想了想如何使前端修改轻松一些.这个
- javascript中给数组加元素是一个非常简单的问题,javascript本身就提供了大量这类函数,我们可以使用js自带函数快速给数组增加
- Pycharm安装pywin32报错1、在pycharm的寻找并安装插件pywin32时报错大致意思是安装失败,建议的解决方案:尝试从系统终
- 关于yii2配置操作多个数据库进行操作,文档上面也给出了具体的配置,一个实战性的例子,也是很简单的,我们这里以权限控制为单个管理库dbnam
- 本文实例讲述了python使用mailbox打印电子邮件的方法。分享给大家供大家参考。具体如下:该范例在linux下使用import mai
- Python自带一个轻量级的关系型数据库SQLite。这一数据库使用SQL语言。SQLite作为后端数据库,可以搭配Python建网站,或者
- DataFrame对象的创建,修改,合并import pandas as pdimport numpy as np创建DataFrame对象
- 一、运算符算术运算符:+ - * / 可以在select 语句中使用连接运算符:|| select deptno|| dname from
- 事实上各式Tooltips方法非常多. 不过大部分都是用Javascript实现.例如ikshow.cn, 使用的JavaScript, D
- 需求在某应用中,需要根据一定的规则生成随机的IP地址,规则类似于192.168.11.0/24这样的CIDR形式给出。实现经过艰苦卓绝的调试
- 记住:这时候08安装的时候要自定义一个实例 比如:mysql2008(不能在使用默认实例了) sql server 2008 express
- 模板引擎的思想是来源于MVC(Model View Controller)模型,即模型层、视图层、控制器层。在Web端,模型层为数据库的操作
- 作者认为最快的学习区块链的方式是自己创建一个,本文就跟随作者用Python来创建一个区块链。对数字货币的崛起感到新奇的我们,并且想知道其背后