在Sybase
中使用SELECT WHERE IN()时是否有办法保持顺序mysql中有两个例子:
SELECT * FROM table WHERE id IN (118,17,113,23,72)
ORDER BY FIELD(id,118,17,113,23,72)
SELECT * FROM table WHERE id IN (118,17,113,23,72)
ORDER BY FIND_IN_SET(id, '118,17,113,23,72')
我在Sybase Ase中需要它。
答案 0 :(得分:2)
您可以使用case
语句分解参数列表,并根据以下内容明确指定参数和顺序的升序计数器:
SELECT *
FROM sometable
WHERE id IN (118,17,113,23,72)
ORDER BY CASE id WHEN 118 THEN 1
WHEN 17 THEN 2
WHEN 113 THEN 3
WHEN 23 THEN 4
WHEN 72 THEN 5
END ASC
它很笨拙,但它应该有效。