【发布时间】:2011-12-23 06:09:50
【问题描述】:
有没有办法在 where-in 语句中检查表中是否存在特定的元组?
类似:
create table Test(A int, B int);
insert into Test values (3, 9);
insert into Test values (6, 7);
insert into Test values (7, 6);
insert into Test values (3, 4);
select A, B
from Test
where (B, A) in Test;
预期输出:
6|7
7|6
【问题讨论】:
-
所以,你想检查例如是否存在 A=6 和 B = 7 的行?
-
我想找到反转表中也存在的所有行。尽管真正的问题是您是否可以检查元组是否在表中,而不仅仅是列中的值。
-
如果您不介意实际从表中获取值,则更简单:
select A, B from TEST where (A=6 and B=7) or (B=6 and A=7)。如果您有超过 (A,B) 和 (B,A) 的索引,或者至少有 A 和 B 列的单独索引,这将在大表上有效地工作。 -
问题中的代码似乎对我有用!
标签: sql sqlite tuples where-in