mySQL:如何在SELECT查询的CASE语句中使用PDO绑定参数?

时间:2017-02-14 09:12:17

标签: mysql

在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

不起作用

1 个答案:

答案 0 :(得分:0)

WHERE (:searchStr = '' or client = :searchStr)

或者如果:searchStr可以为NULL而不仅仅是一个emprty字符串,则使用

WHERE (:searchStr is null or client = :searchStr)