当前位置: 首页 > 知识库问答 >
问题:

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

陶寒
2023-03-14

在mySQLselect查询中,我希望根据WHERE子句中PDO绑定的搜索参数条件选择客户机表的行。类似于其中client=:searchStr

有两种情况:A)搜索参数包含字符串或B)搜索参数为空

在A的情况下,param:searchStr包含例如一个客户端号'123'。

因此,我使用:where client=:searchStr,如果客户机在表中,则查询返回客户机123。

在B的情况下,字符串为空。因此我没有使用WHERE子句,查询只是返回表中的所有客户端

我当然可以写一个IF..SELECT查询之外的ELSE语句。但是如何在SELECT查询中使用CASE语句对其进行编码呢?

类似于

CASE   
   WHEN :searchStr = '' THEN WHERE client = :searchStr
END

不起作用

共有1个答案

从光启
2023-03-14
WHERE (:searchStr = '' or client = :searchStr)

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

WHERE (:searchStr is null or client = :searchStr)
 类似资料:
  • 问题内容: 我正在尝试在MySQL选择查询中使用一条语句。 我在第一个语句之后出现错误。 为什么这不起作用?在MySQL查询中执行IF语句的正确方法是什么? 问题答案: 您使用的IF / THEN / ELSE构造仅在存储过程和函数中有效。您的查询将需要重组,因为您不能使用IF()函数来控制WHERE子句的流程。 可以在查询中使用的IF()函数主要用于在查询的SELECT部分​​中根据某些条件选择

  • 我在mysql查询中使用CASE语句,我必须检查同一查询中是否存在列。 有可能这样做吗?如果是,请帮忙。 我的查询为例- 当“Status”时选择CASE column1,然后选择“Status”当“value”时(当id不为NULL时选择CASE id,然后选择“status1”,否则选择“status2”结束为table1 where condition中的ScheduleStatus)结束为

  • 问题内容: 这是我的尝试: 问题答案: 我发布后马上想通了:

  • 问题内容: 我只想获取一个表“ b”的值,如果表“ a”的值是“-”如果表“ b”的值是空的,那么即使它是“-”,也要获取表“ a”的值 Microsoft Access对以下查询说“ Missing operator”: 我认为该错误是在CASE表达式行上。 问题答案: MS Access不支持语句。用途: 我不确定Access是否支持别名,但是它可能支持 注意(尽管标签正确),问题的标题可能会

  • 问题内容: 这个问题已经在这里有了答案 : 我可以将数组绑定到IN()条件吗? (21个回答) 2个月前关闭。 我对PDO有一个问题,在困扰了一段时间后,我真的很想得到答案。 举个例子: 我将ID数组绑定到PDO语句,以便在MySQL IN语句中使用。 该数组将说: $ values = array(1,2,3,4,5,6,7,8); 数据库安全变量为 $ products = implode(’

  • 本文向大家介绍MySQL使用select语句查询指定表中指定列(字段)的数据,包括了MySQL使用select语句查询指定表中指定列(字段)的数据的使用技巧和注意事项,需要的朋友参考一下 本文介绍MySQL数据库中执行select查询语句,查询指定列的数据,即指定字段的数据。 再来回顾一下SQL语句中的select语句的语法: Select 语句的基本语法: Select <列的集合> from