Mysql选择查询条件
我在mysql数据库中有两个数据库列,a和B。 在select查询中,我希望实现以下逻辑: 选择A为“X”的行。 如果行中未设置A,则仅当列B='Y'时才选中该行 所以可以说B列是a列的后备列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
如何使用“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如果你有问题,你应该使用顶部的“提问”链接提问,它会比去年对旧答案的评论得到更多的回复:)