SQLite-返回排序列表
我可以用SQLite-返回排序列表,sqlite,Sqlite,我可以用 SELECT * FROM table WHERE id IN (478,278,190,890,123) 返回记录列表 如何指示SQLite返回使用列表中指定的顺序排序的记录?您可以按字段名使用顺序。在这一点上,我假设id 从(478278190890123)order by id中的id所在的表中选择*您可以使用order by字段名。在这一点上,我假设id 从表中选择*,其中id在(478278190890123)order by id中没有专门的指令。 你必须为每种情况找到
SELECT * FROM table
WHERE id IN (478,278,190,890,123)
返回记录列表
如何指示SQLite返回使用列表中指定的顺序排序的记录?您可以按字段名使用顺序。在这一点上,我假设id
从(478278190890123)order by id中的id所在的表中选择*您可以使用order by字段名。在这一点上,我假设id
从表中选择*,其中id在(478278190890123)order by id中
没有专门的指令。
你必须为每种情况找到解决方案
在您的示例中,您可以这样做:
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
但是如果您有一个很长的ID列表,它将变得很难维护。对于这类事情没有专门的说明。
你必须为每种情况找到解决方案
在您的示例中,您可以这样做:
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
但是如果您有一个很长的id列表,则很难维护。否。“按id订购”会给我123190278478890。我希望订单号为478278190890123。您可以使用orderbyid DESC
No。“orderbyid”会给我123190278478890。我希望订单号为478278190890123。您可以使用orderbyid DESC
谢谢。迄今为止最好的答案。是的,如果列表很长,那么查询就会很大。让我们看看是否有人能想出一个更简单的解决方案。这些ID的顺序来自哪里?总是一样吗?i、 例如,在所有查询中,478总是在278之前。目前,ID的顺序来自配置文件(可能每周更改一次),但最终将来自用户选择。我最好在应用程序中对行进行排序。谢谢你的帮助。是的,在你的情况下,最好在应用程序中进行排序。谢谢。迄今为止最好的答案。是的,如果列表很长,那么查询就会很大。让我们看看是否有人能想出一个更简单的解决方案。这些ID的顺序来自哪里?总是一样吗?i、 例如,在所有查询中,478总是在278之前。目前,ID的顺序来自配置文件(可能每周更改一次),但最终将来自用户选择。我最好在应用程序中对行进行排序。谢谢您的帮助。是的,在您的情况下,最好在应用程序中进行排序。