SQLite-即使行重复也返回行

时间:2019-05-06 11:14:46

标签: sql sqlite

我有一个简单的SQLite表,其中只有一个ID列。

我有一些变量ID可能彼此重复,例如:1,2,3,4,3,1(这些ID只是示例,可能有数百个)。

我有一个简单的查询,如下所示:

SELECT ID FROM TABLE WHERE ID in (1,2,3,4,3,1)

通常情况下,答案仅包含ID为1,2,3,4的4行。有什么方法可以强制SQLite即使请求重复,也要按照请求(1,2,3,4,3,1)的顺序返回行?

我的查询中有n个ID,并且我希望返回n行,即使它们是重复的。

编辑:表定义为:

CREATE TABLE TEST(ID TEXT PRIMARY KEY)

2 个答案:

答案 0 :(得分:0)

您可以使用left join

select t.*
from (select 1 as id, 1 as ord union all
      select 2 as id, 2 as ord union all
      select 3 as id, 3 as ord union all
      select 4 as id, 4 as ord union all
      select 3 as id, 5 as ord union all
      select 1 as id, 6 as ord
     ) ids left join
     t
     on t.id = ids.id
order by ids.ord;

答案 1 :(得分:-1)

我认为您可以使用不同的内容:

SELECT DISTINCT ID FROM TABLE WHERE ID in (1,2,3,4,3,1)