【发布时间】:2018-02-19 17:49:43
【问题描述】:
我在 WHERE IN 条件下使用的 IFNULL 函数有问题:
SELECT provider_id FROM provider WHERE provider_id IN ( IFNULL("131, 132",'999') )
我尝试了所有引用替代方案,例如:
SELECT provider_id FROM provider WHERE provider_id IN ( IFNULL("'131', '132'", '999') )
但是用 PHP 无法做到这一点。
您能否建议如何正确格式化 IFNULL 函数中的多值参数?
【问题讨论】:
-
不应该是单引号吗?
-
你想做什么?获取包含该提供者 ID 或提供者 ID 为空的结果?
-
您正在使用
IFNULL,但其中没有任何参数可以为空。 -
显示
provider_id列的示例数据此外,在IN子句中,您应该将每个值分开,而不是像“131, 132”,它将被视为单个值而不是2个值 -
我正在使用动态过滤器(由变量 $pdo_test 表示)。它可能有值,也可能不取决于用户过滤。 IFNULL 处理 $pdo_test = null (未应用过滤器) 时的情况:"SELECT provider_id FROM provider WHERE provider_id IN (IFNULL($pdo_test, '999'))";