Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite-返回排序列表_Sqlite - Fatal编程技术网

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的顺序来自配置文件(可能每周更改一次),但最终将来自用户选择。我最好在应用程序中对行进行排序。谢谢您的帮助。是的,在您的情况下,最好在应用程序中进行排序。