我有一张如下表,
表格1
当我使用查询时
"SELECT cat_title FROM table1 WHERE cat_id IN(21,10,25,4)"
结果按顺序排列
猫头衔
银行
美容院
车
住宿
但我需要查询中给出的结果,例如,
猫头衔
车
比蒂客厅
住宿
银行
我该怎么办?
我有一张如下表,
表格1
当我使用查询时
"SELECT cat_title FROM table1 WHERE cat_id IN(21,10,25,4)"
结果按顺序排列
猫头衔
银行
美容院
车
住宿
但我需要查询中给出的结果,例如,
猫头衔
车
比蒂客厅
住宿
银行
我该怎么办?
你可以试试这个:
SELECT cat_title
FROM table1
WHERE cat_id IN(21,10,25,4)
ORDER BY (cat_id = 21) DESC, (cat_id = 10) DESC, (cat_id = 25) DESC, (cat_id = 4) DESC;
或者
SELECT cat_title
FROM table1
WHERE cat_id IN(21,10,25,4)
ORDER BY FIND_IN_SET(cat_id, ('21,10,25,4'));
SELECT cat_title FROM table1
Where cat_id IN(21,10,25,4)
ORDER BY (
CASE WHEN cat_id = 21 THEN 0
WHEN cat_id = 4 THEN 1
WHEN cat_id = 10 THEN 2
WHEN cat_id = 25 THEN 3
END
)