【发布时间】:2011-08-10 11:41:09
【问题描述】:
我在 mysql 数据库中有两个数据库列,A 和 B。 在一个选择查询中,我想实现这个逻辑:
选择 A 为“X”的行。 如果 A 未设置在一行中,则仅当列 B='Y' 时才检查并选择该行。
所以可以说 B 列是 A 列的后备列。
我如何构造一个将“X”和“Y”作为 WHERE 子句输入的 SELECT 查询?
【问题讨论】:
标签: mysql select conditional-statements where
我在 mysql 数据库中有两个数据库列,A 和 B。 在一个选择查询中,我想实现这个逻辑:
选择 A 为“X”的行。 如果 A 未设置在一行中,则仅当列 B='Y' 时才检查并选择该行。
所以可以说 B 列是 A 列的后备列。
我如何构造一个将“X”和“Y”作为 WHERE 子句输入的 SELECT 查询?
【问题讨论】:
标签: mysql select conditional-statements 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')
【讨论】: