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