MySQL命令不使用ASC或DESC

时间:2010-05-08 18:24:14

标签: mysql sql-order-by

我有一个列使用我想要排序的ID。它具有从1到3的ID值。但是,我不想仅使用DESC的ASC,而是希望按2,3,1进行自定义排序。如何实现这一目标?

3 个答案:

答案 0 :(得分:6)

我认为最简单的方法是这样做:

SELECT * FROM `mytable` ORDER BY FIND_IN_SET(id, '2,3,1')

答案 1 :(得分:1)

您可以添加一个值为

的虚拟列
MOD(ID, 3)

并按顺序对您的查询进行排序。例如:

SELECT somecolumn, MOD(ID, 3) AS ordered_id FROM my_table ORDER BY ordered_id

答案 2 :(得分:0)

未测试:

SELECT ..., IF(ID=2, 1, IF(ID=3, 2, 3)) AS orderByValue
  FROM ...
 ORDER BY orderByValue

它使用IF function转换ID值:

 ID     orderByValue
  2        1
  3        2
else       3