php - 如何在SQLite中重复结果行?

标签 php sqlite

我将此查询发送到我的数据库:

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/

相关文章:

php - MOODLE中如何让用户自动登录

php - 组合值以创建 100 个

php - 当成员不可用时,MongoDB 副本集非常慢

Android SQLite数据库异常

php - 如何将实时 prestashop 站点移动到本地主机?

php - 更新sql不影响数据库

c# - SQLite.Net - 不知道 System.Collections.Generic.List 错误 - Xamarin Android

iphone - 我应该如何在 iPhone 项目中指定 sqlite 数据库的路径?

sql - Django:如何正确删除数据库记录以防止主键重用?

c - 如何从带有 'union all' 子句的 sqlite3 准备好的语句中获取数据