我有一个MySQL数据库中的两个数据库列,A和B. 在选择查询,我想实现这样的逻辑:Mysql的选择查询条件
选择其中A为“X”的行。 如果A未在一行中设置,则仅当列B ='Y'时检查并选择行。
因此可以说,列B是A列
我怎么能建设有“X”和“Y”作为输入SELECT查询的WHERE子句的后备?
我有一个MySQL数据库中的两个数据库列,A和B. 在选择查询,我想实现这样的逻辑:Mysql的选择查询条件
选择其中A为“X”的行。 如果A未在一行中设置,则仅当列B ='Y'时检查并选择行。
因此可以说,列B是A列
我怎么能建设有“X”和“Y”作为输入SELECT查询的WHERE子句的后备?
使用布尔逻辑:
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'))
SELECT * FROM table WHERE A='X' OR (A IS NULL AND B='Y')
我对这个解决方案的问题。这个查询将返回A和B(因为'SELECT *'),也许其中一个将为空。有没有办法不返回A的情况下,它是空的? – frabala 2013-01-03 17:19:31
@frabala如果你有问题,你应该使用顶部的“问题问题”链接问,它会给你比去年的回答评论更多的回应:) – Yamikuronue 2013-01-03 17:56:20
是的,你是对。 – frabala 2013-01-03 18:13:08