我想确定表格中不存在的特定 ID。
例如,我有ID 1,2和3,并想知道它们是否存在于表中。
基本上这可以归结为:
SELECT id FROM (
SELECT 1 AS id
UNION
SELECT 2 AS id
UNION
SELECT 3 AS id
)
WHERE
NOT EXISTS (SELECT * FROM table WHERE table.id = id)
假设table
的ID为1和4,那么这将产生2和3。
是否有更优雅/简洁/更快的方式在SQLite中获取这些ID?
答案 0 :(得分:1)
compound SELECT operator EXCEPT允许您执行与NOT EXISTS类似的操作:
SELECT 1 AS id UNION ALL
SELECT 2 UNION ALL
SELECT 3
EXCEPT
SELECT id FROM MyTable
从SQLite 3.8.3开始,您可以在任何可以使用SELECT的地方使用VALUES,但这只是一种不同的语法:
VALUES (1),
(2),
(3)
EXCEPT
SELECT id FROM MyTable