我有一个简单的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)
答案 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)