mysql 通过在同一个表上查询自定义顺序

标签 mysql

我有这样的数据,它有更多的列,不仅低于两列:

id       |  s_type
1        |  ACTIVE
2        |  PENDING
3        |  UPDATE
4        |  ACTIVE
5        |  PENDING
6        |  UPDATE

我使用按 ASC、DESC 排序,但我想显示自定义订单的数据,我想将其显示为我的自定义订单(不仅是升序或降序):首先要查看所有待定,然后所有事件,然后所有更新 s_type

id       |  s_type
1        |  PENDING
2        |  PENDING
3        |  ACTIVE
4        |  ACTIVE
5        |  UPDATE
6        |  UPDATE

我如何显示单个查询

最佳答案

试试这个:

SELECT *
FROM yourtable
ORDER BY field(s_type, 'PENDING', 'ACTIVE', 'UPDATE'), id

或者使用CASE WHEN

SELECT *
FROM yourtable
ORDER BY CASE s_type WHEN 'PENDING' THEN 1
                     WHEN 'ACTIVE' THEN 2
                     WHEN 'UPDATE' THEN 3 END, id

关于mysql 通过在同一个表上查询自定义顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38366555/

相关文章:

mysql - Passport Node (错误 : Failed to deserialize user out of session.)

java - 从关系数据库检索数据

mysql - 英国和美国日期的混合 - 全部转换为英国

mysql - 运行 rake db :migrate VERSION=0 and redid the migration, 后,我丢失了数据库中的所有内容

mysql - cygwin下用cmake编译mysql客户端

mysql - MySQL 中的 SELECT 树

java - 如何获取从单个 IP 登录的所有 UUID(MySQL 数据库 [Minecraft])

php - 连接 2 个其他表和 2 个连接表中的条件

php - 如何检查 PHP 中的异常

php - 如何在上传到 MySQL 数据库之前减小/压缩图像的大小