在mySQL SELECT查询中,我希望根据WHERE子句中的PDO约束搜索参数条件选择客户端表的行。像WHERE client = :searchStr这样的东西
有两种情况: A)搜索参数包含字符串或B)搜索参数为空
在A的情况下,参数:searchStr包含例如客户编号'123‘。
因此,如果客户端在表中,我使用:WHERE client = :searchStr和查询返回客户端123。
在B的情况下,字符串是空的。因此,我不使用WHERE子句,查询只是返回表中的所有客户端
当然我可以写一个IF ..SELECT查询外部的ELSE语句。但是如何在SELECT查询中使用CASE语句对其进行编码呢?
就像这样
CASE
WHEN :searchStr = '' THEN WHERE client = :searchStr
END不工作
发布于 2017-02-14 17:13:19
WHERE (:searchStr = '' or client = :searchStr)或者,如果:searchStr可以是NULL,而不仅仅是emprty字符串,则使用
WHERE (:searchStr is null or client = :searchStr)https://stackoverflow.com/questions/42221959
复制相似问题