Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 选择两列包含值组合的所有行_Sql - Fatal编程技术网

Sql 选择两列包含值组合的所有行

Sql 选择两列包含值组合的所有行,sql,Sql,以下是我的模式: 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语句,但当我尝试此操作时: SELE

以下是我的模式:

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')
我三排都回来了


如何匹配值的组合?

这是您使用括号还是用括号查找的

select * 
from T
where ( A = '1' AND B = '1' ) OR ( A = '2' AND B = '2' )

您可以使用下面的sql语句


从T中选择*,其中A==B,A在'1','2'中

您可以检查此查询:

SELECT * FROM T WHERE (A,B) IN (('1', '1'),('2', '2'));
请参阅下面给定的链接


单击

是否有一种方法可以使用IN语句来避免生成所有sql?@ConditionRacer-我建议使用or,但还有其他替代方法,例如在“11”中的concata、b、22'-concat是mysql,但其他rdbms也有类似的方法。。。