我有一个 MySQL 数据库中的两个列 A 和 B。 在一个 select 查询中,我想要实现以下逻辑:
选择 A 为 'X' 的行。 如果某一行没有设置 A,则只有当列 B = 'Y' 时才检查并选择该行。
因此,可以说列 B 是列 A 的备选项。
我该如何构建一个 SELECT 查询,将 'X' 和 'Y' 作为 WHERE 子句的输入?
我有一个 MySQL 数据库中的两个列 A 和 B。 在一个 select 查询中,我想要实现以下逻辑:
选择 A 为 'X' 的行。 如果某一行没有设置 A,则只有当列 B = 'Y' 时才检查并选择该行。
因此,可以说列 B 是列 A 的备选项。
我该如何构建一个 SELECT 查询,将 'X' 和 'Y' 作为 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等于'X'或者(A为空且B等于'Y')