Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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
Mysql选择查询条件_Mysql_Select_Conditional Statements_Where - Fatal编程技术网

Mysql选择查询条件

Mysql选择查询条件,mysql,select,conditional-statements,where,Mysql,Select,Conditional Statements,Where,我在mysql数据库中有两个数据库列,a和B。 在select查询中,我希望实现以下逻辑: 选择A为“X”的行。 如果行中未设置A,则仅当列B='Y'时才选中该行 所以可以说B列是a列的后备列 如何使用“X”和“Y”作为WHERE子句的输入来构造SELECT查询?我认为这应该可以: SELECT * FROM table WHERE (A='X') OR ((A IS NULL) AND (B='Y')) 使用布尔逻辑: SELECT * FROM table WHERE A = 'X' OR

我在mysql数据库中有两个数据库列,a和B。 在select查询中,我希望实现以下逻辑:

选择A为“X”的行。 如果行中未设置A,则仅当列B='Y'时才选中该行

所以可以说B列是a列的后备列


如何使用“X”和“Y”作为WHERE子句的输入来构造SELECT查询?

我认为这应该可以:

SELECT * FROM table
WHERE (A='X') OR ((A IS NULL) AND (B='Y'))
使用布尔逻辑:

SELECT *
FROM table
WHERE A = 'X' OR (A IS NULL AND B = 'Y')

从A='X'或(A为NULL,B='Y')的表中选择*

我对这个解决方案有一个问题。此查询将同时返回A和B(因为“SELECT*”),其中一个可能为空。如果答案为空,有没有办法不返回?@frabala如果你有问题,你应该使用顶部的“提问”链接提问,它会比去年对旧答案的评论得到更多的回复:)