我有一个 mysql 查询,我在列表“WHERE IN”中给出列的值,并且我想按照我在列表中给出的顺序对结果进行排序。可能吗?
我的 SQL 查询就像
SELECT *
FROM <TABLE NAME>
WHERE id IN (2,12,56,5,9)
我希望结果与我在列表中给出的顺序相同,即 2,12,56,5,9
SELECT *
FROM table_name
WHERE name IN (2,12,56,5,9)
ORDER BY FIELD(id,2,12,56,5,9)
id
返回2,12,56,5,9 列表中的索引(位置) 。如果未找到 str,则返回 0。
如果 FIELD() 的所有参数都是字符串,则所有参数都作为字符串进行比较。如果所有参数都是数字,则将它们作为数字进行比较。否则,参数将作为双精度进行比较。
是的,这是可能的。
SELECT ...
ORDER BY
CASE
WHEN id = 2 THEN 1
WHEN id = 12 THEN 2
WHEN id = 56 THEN 3
...
END