mysql - 在一个查询中使用 ORDER BY FIELD 和另一个(第二个)ORDER 子句

标签 mysql sql-order-by

This question询问有关在 MySQL 中指定排序顺序的问题。

我想做的是有两个级别的排序 - 第一个是我指定的顺序,然后剩余的非指定值将按正常方式排序。

我试过的是:

    SELECT
        version_id,
        version_name
    FROM
        software_versions
    ORDER BY 
        FIELD(version_id, 133, 41, 88), 
        version_name ASC

但实际情况是行按版本名称排序,然后是 FIELD(从查询的结构向后排序)。

是否可以按照我的要求做?查找表相对较小(100 行左右),所以我不太担心使用 ORDER BY FIELD 对性能的影响。

我需要将其作为 UNION 重新处理吗?

最佳答案

尝试颠倒顺序,使 0 始终位于最后一个位置。

ORDER BY FIELD(version, 88, 41, 133) DESC,  version_name ASC

关于mysql - 在一个查询中使用 ORDER BY FIELD 和另一个(第二个)ORDER 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16041085/

相关文章:

mysql - Delphi (dbExpress) 可以跨模式使用 SHOW TABLES 吗?

php - CakePHP数据库设计: associations for job board

MySQL 选择指令

sql - 如果两个值相等,order by 子句如何工作?

mysql - ORDER BY 来自不同表的具有相同选项 ID 的行数

mysql - 棘手的 MySQL ORDER BY 问题

php - MySQL通过发送/接收的最后一条消息获取有序的联系人列表

mysql - SQL 百分比查找任务

mySQL - 根据顺序值选择记录,然后在一个查询中随机记录

php - Laravel 按特定字符串排序