有这个where子句:
第一个和第二个占位符?可以有值:1 || NULL
第三名持有者是动态添加的(数组)
IF(ISNULL(?),1,xy.id) IN
(IF(ISNULL(?),1,(SELECT x.id FROM x WHERE name IN (?))))
我需要这种类型的isnull检查,因为如果发送的数据为null,我希望子句始终返回true。基本上如果data为null子句将是1 IN 1
,如果它不为null找到corespondent id,但if()
函数限制我只返回1个结果(不是一组)。我在这里有什么选项除了在php中动态构建整个查询?
答案 0 :(得分:1)
您可以在where
子句
WHERE (ISNULL(?) OR xy.id IN (SELECT x.id FROM x WHERE name IN (?)))