MySQL 基于值的排序列

标签 mysql sql-order-by

我在一个表中有多行,它们有列 statusedited。 status 的值可以是 0、1、2 或 3。以下是我的查询。

SELECT * FROM orders ORDER BY FIELD(status, 1, 0, 2, 3), edited ASC

是否也可以根据这样的状态值对结果进行排序:

if status = '0' => edited DESC
if status = '1' => edited DESC
if status = '2' => edited ASC
if status = '3' => edited ASC

我可以在一个查询中执行此操作还是需要执行单独的查询?
提前致谢。

最佳答案

您应该使用 Order By Case 查询

语法

 order By   
    CASE 
           WHEN status =0 THEN 0 
             ...

        END DESC 

关于MySQL 基于值的排序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32376278/

相关文章:

sql - 在表中排序

mysql - 将mysql存储过程转换为mssql

mysql 表更改 phpmyadmin 中每个页面刷新的行数

php - 使用 PHP、Curl 和 MySQL 数据库进行网站抓取

PHP 比较来自 Mysql 的值

mysql - 按时间排序和分组

c# - 如何为组合框设置mySQL数据源(C#)

java - 使用 Hibernate 将图像保存在数据库中

postgresql - 按字符列数字排序

mysql - 当 IFNULL 函数上的 "ORDER BY"时,发送空值结束