在mySQL SELECT
查询中,我想根据WHERE子句中的PDO绑定搜索参数条件选择客户端表的行。像WHERE client = :searchStr
有两种情况: A)搜索参数包含字符串或 B)搜索参数为空
在A的情况下,参数:searchStr
包含例如客户编号'123'。
所以我使用:WHERE client = :searchStr
,如果客户端在表中,则查询返回客户端123.
在B的情况下,字符串为空。所以我不使用WHERE子句,查询只返回表中的所有客户端
当然,我可以在SELECT查询之外编写IF .. ELSE语句。 但是如何使用SELECT查询中的CASE语句对其进行编码?
像
这样的东西CASE
WHEN :searchStr = '' THEN WHERE client = :searchStr
END
不起作用
答案 0 :(得分:0)
WHERE (:searchStr = '' or client = :searchStr)
或者如果:searchStr
可以为NULL而不仅仅是一个emprty字符串,则使用
WHERE (:searchStr is null or client = :searchStr)