根据WHERE IN子句中指定的顺序对行进行排序

2022-03-03 00:00:00 sql mysql sql-order-by

我有类似的东西:

SELECT *
FROM table
WHERE id IN (118, 17, 113, 23, 72);

它返回按ID升序排序的行。是否有办法按照IN子句中指定的顺序取回行?


解决方案

您应该使用";order byFIELD";。因此,例如:

SELECT * FROM table WHERE id IN (118,17,113,23,72) 
ORDER BY FIELD(id,118,17,113,23,72)

相关文章