mysql 查询语句问题?

SELECT id FROM 表1 WHERE id=14 or id=2 or id=8 or id=6 ,返回的结果是按照id大小排序的,能否按照14、2、8、16原始的顺序排序?

第1个回答  2023-10-04

排序时将id转换成字符串类型即可。


SELECT

FROM

WHERE

ORDER BY to_char(id) 

第2个回答  2023-11-27
SELECT id FROM 表1 WHERE id=14 or id=2 or id=8 or id=6 ,返回的结果是按照id大小排序的,能否按照14、2、8、16原始的顺序排序
假设有一个名为"表1"的表,其中包含一个名为"id"的列,我们想按照14、2、8、16的原始顺序排序结果:
SELECT id
FROM 表1
WHERE id IN (14, 2, 8, 16)
ORDER BY CASE id
WHEN 14 THEN 1
WHEN 2 THEN 2
WHEN 8 THEN 3
WHEN 16 THEN 4
END;
使用IN子句筛选出id为14、2、8、16的数据。然后,使用CASE语句在ORDER BY子句中为每个id指定一个排序值。根据CASE语句的定义,id为14的排序值为1,id为2的排序值为2,id为8的排序值为3,id为16的排序值为4。这样就可以按照指定的顺序对结果进行排序。
相似回答