有这个 where 子句:
第一个和第二个占位符?可以有值:1 || NULL
第三个占位符是动态添加的(数组)
IF(ISNULL(?),1,xy.id) IN
(IF(ISNULL(?),1,(SELECT x.id FROM x WHERE name IN (?))))
我需要这种类型的 isnull 检查,因为如果发送的数据为空,我希望该子句始终返回 true。基本上,如果数据为空子句1 IN 1
,如果它不为空,则找到对应的 ID,但if()
函数限制我只返回 1 个结果(不是一组)。除了在 php 中动态构建整个查询之外,我还有哪些选项?