我有这个查询
SELECT column1 FROM Table1 WHERE column1 LIKE CONCAT('%', :regex, '%') OR (column2 IS NOT NULL AND column2 LIKE CONCAT('%', :regex, '%')
如果column1
的记录满足where子句,则返回Table1
值。但我想要的是,如果满足where子句的第一部分column1
,则查询返回LIKE CONCAT('%', :regex, '%')
值,如果满足第二部分column2
则返回(column2 IS NOT NULL AND column2 LIKE CONCAT('%', :regex, '%')
值。
我应该如何修改查询以实现此结果?
答案 0 :(得分:3)
一种选择是使用CASE
声明:
SELECT
CASE
WHEN column1 LIKE CONCAT('%', :regex, '%') THEN column1
ELSE column2
END yourcolumn
FROM Table1
WHERE column1 LIKE CONCAT('%', :regex, '%')
OR (column2 IS NOT NULL AND column2 LIKE CONCAT('%', :regex, '%')