我将此查询发送到我的数据库:
SELECT ID,text from myTable WHERE id IN (2,3,4,4,5)
我想多次获得一些行,但它返回一次。
例如,当我发送以下查询时,我想多次获得“第4行”:
SELECT ID,text from myTable WHERE id IN (1,4,4,4,4,4,5)
它仅返回第4行。
我知道我可以做到:
SELECT ID,text from myTable WHERE id=1
UNION ALL
SELECT ID,text from myTable WHERE id=4
UNION ALL
SELECT ID,text from myTable WHERE id=4
UNION ALL
SELECT ID,text from myTable WHERE id=4
UNION ALL
SELECT ID,text from myTable WHERE id=4
UNION ALL
SELECT ID,text from myTable WHERE id=4
UNION ALL
SELECT ID,text from myTable WHERE id=5
它正在工作,但是它向数据库发送了许多“选择”请求,我正在寻找最快的方法。
有更好的方法吗?最好的方法是更快更好?
我知道我可以使用数组在sql之外进行操作,但是我正在寻找sql查询方式。
我正在寻找这个结果:
ID Text
1 test
4 testt
4 testt
4 testt
4 testt
4 testt
5 testtt
最佳答案
IN运算符仅检查左侧的值是否与右侧的某个值匹配。
要返回多行,您必须使用多个SELECT或创建一个临时表,其中值4
出现在多行中:
WITH IDs_to_search(ID) AS (
VALUES (2), (3), (4), (4), (5)
)
SELECT ID, text
FROM MyTable
JOIN IDs_to_search USING (ID);
关于php - 如何在SQLite中重复结果行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45788796/