【发布时间】:2021-01-07 00:42:53
【问题描述】:
我想在我的 SQL 结果中重复一些行。我已经测试了IN operator,但它只会返回每一行一次:
SELECT ID,text from myTable WHERE id IN (2,2,3,4,4,5)
可以通过发送多个 SELECT 查询来完成,
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
但是当我有很大的要求时它变得很慢。
【问题讨论】:
-
不,不一样。我已经编辑了我的问题。
-
只是为了了解“它正在工作,但它向数据库发送了许多“选择”请求”。请记住,SQLite 不是传统的客户端-服务器数据库,因此“发送请求”是一个几乎没有意义的短语。您必须进行基准测试才能确定,但我怀疑 multi-
UNION方法的速度会与任何其他解决方案有很大不同(尽管CL's answer 看起来更整洁)。 -
使用UNION方式,sqlite中不能使用超过500条“select”命令!
标签: sql