我有一个表 table
,它包含三个字段:id
、field1
和 field2
。
我需要创建的 SQL 查询应该选择 id
WHERE field1 LIKE 'Some string'
但如果 field1
是 NULL
我应该在伪 SQL 中对 field2
执行过滤:
SELECT id FROM table
WHERE (IF `field1` IS NULL THEN `field2` ELSE `field1`) LIKE 'Some string'
如何在 MySQL 中实现这一点?
感谢关注!
最佳答案
您可以使用 Flow Control Operators 之一.你可以这样写:
CASE
运算符(推荐)
SELECT id FROM table
WHERE CASE
WHEN `field1` IS NOT NULL THEN `field1`
ELSE `field2`
END LIKE 'Some string'
IF
构造
SELECT id FROM table
WHERE IF(`field1` IS NOT NULL, `field1`, `field2`) LIKE 'Some string'
IFNULL
构造
SELECT id FROM table
WHERE IFNULL(`field1`, `field2`) LIKE 'Some string'
关于mysql - 如何以编程方式选择要在 WHERE 条件中使用的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33956247/