这是我的架构:
CREATE TABLE T (A CHAR(1), B CHAR(1));
INSERT INTO T (A, B) VALUES('1', '1');
INSERT INTO T (A, B) VALUES('2', '2');
INSERT INTO T (A, B) VALUES('1', '2');
我不想选择列A和B包含值组合的行。例如,假设我想找到组合A = 1,B = 1,A = 2,B = 2,没有其他组合。如果它是单个值,我可以使用IN语句,但是当我尝试这个时:
SELECT * FROM T WHERE A IN ('1', '2') AND B IN ('1', '2')
我回来了所有三行。
如何匹配值的组合?
答案 0 :(得分:1)
这是您正在寻找使用括号的OR
吗?
select *
from T
where ( A = '1' AND B = '1' ) OR ( A = '2' AND B = '2' )
答案 1 :(得分:1)
答案 2 :(得分:0)
你可以使用类似下面的sql
SELECT * FROM T WHERE(A == B)AND A IN('1','2');