我有一个mysql查询
SELECT collateral.*
FROM collateral
WHERE collateral.id IN (85,565,32,33)
我是否可以将查询结果输出到ORDER BY
IN
值,而不是ASC
,这似乎是默认值?
默认情况下,查询按以下顺序输出结果
row id
---------
1 32
2 33
3 85
4 565
我想要实现的是根据IN
值
row id
---------
1 86
2 565
3 32
4 33
由于
答案 0 :(得分:1)
您可以使用order by field
WHERE collateral.id IN (85,565,32,33)
order by field(collateral.id ,85,565,32,33)
答案 1 :(得分:0)
对于缺少"字段"的数据库(或类似的)功能答案是
WHERE collateral.id IN (85,565,32,33)
ORDER BY CASE
WHEN collateral.id = 85 THEN 1
WHEN collateral.id = 565 THEN 2
WHEN collateral.id = 32 THEN 3
WHEN collateral.id = 33 THEN 4
END
对于MySql使用@Abhik回答