【问题标题】:How to order rows in MySQL when using in [duplicate]在 [重复] 中使用时如何在 MySQL 中对行进行排序
【发布时间】:2015-05-16 13:49:47
【问题描述】:

我正在使用这个查询来选择 MySQL 中的行

SELECT * FROM `table` WHERE `id` IN (5,2,3,1,4);

现在默认情况下,行将按其id1, 2, 3, 4, 5排序

有什么方法可以让我在查询中对行进行排序,所以顺序应该是:5, 2, 3, 1, 4

【问题讨论】:

    标签: php mysql sql phpmyadmin


    【解决方案1】:

    您可以使用case 语句自定义排序

    SELECT *
    FROM   table
    WHERE  id IN ( 5, 2, 3, 1, 4 )
    ORDER  BY CASE id
                WHEN 5 THEN 1
                WHEN 2 THEN 2
                WHEN 3 THEN 3
                WHEN 1 THEN 4
                WHEN 4 THEN 5
                ELSE 6
              END 
    

    【讨论】:

      【解决方案2】:

      使用 MySQL 的FIELD() 函数

      SELECT * 
        FROM `table` 
       WHERE `id` IN (5,2,3,1,4)
       ORDER BY FIELD(`id`, 5,2,3,1,4)
      ;
      

      【讨论】:

        猜你喜欢
        • 2015-12-18
        • 1970-01-01
        • 1970-01-01
        • 2019-11-22
        • 2018-10-11
        • 2016-10-14
        • 1970-01-01
        • 2013-08-28
        • 2010-10-21
        相关资源
        最近更新 更多