我可以使用SQLite的 - 回报排序列表
SELECT * FROM table
WHERE id IN (478,278,190,890,123)
返回的记录列表。
如何指示SQLite返回使用列表中指定的顺序排序的记录?
我可以使用SQLite的 - 回报排序列表
SELECT * FROM table
WHERE id IN (478,278,190,890,123)
返回的记录列表。
如何指示SQLite返回使用列表中指定的顺序排序的记录?
没有专门的指示这样的事情。 您必须为每种情况找到解决方案。
在你的榜样,你可以做这样的:
SELECT *
FROM table
WHERE id IN (478,278,190,890,123)
ORDER BY CASE id WHEN 478 THEN 0
WHEN 278 THEN 1
WHEN 190 THEN 2
WHEN 890 THEN 3
WHEN 123 THEN 4
END
但如果你有IDS的一个长长的清单,就会变得难以维持。
谢谢。迄今为止的最佳答案。是的,如果列表很长,那么查询将会很大。让我们看看是否有人可以想出一个更简单的解决方案。 – mas 2011-05-20 12:36:25
这些ID的顺序来自哪里?它总是一样吗?即:例如478总是在278之前的所有查询中。 – manji 2011-05-20 12:38:42
目前,ID的顺序来自配置文件(可能每周更改一次),但最终它将来自用户选择。我可能更好的排序应用程序中的行。谢谢你的帮助。 – mas 2011-05-20 13:54:05