gpt4 book ai didi

mysql - 如果使用 SQL 参数为 NULL,则返回所有值?

转载 作者:行者123 更新时间:2023-11-29 06:02:06 26 4
gpt4 key购买 nike

我不确定这样做的正确方法是什么。

如果未定义某个过滤器的值,我基本上想返回所有值。

获取请求是使用这样的过滤器进行的:

url.com?filter1=abc&filter2=123&filter4=33

因为 filter3 没有定义,所以我想返回所有值,不管它们的 filter3 值是多少。简单的逻辑正确。

但如果我尝试用 SQL 实现,我就会卡住。


从 TABLE_NAME 中选择 *
其中过滤器 1 = $1
AND 过滤器 2 = $2
AND 过滤器 3 = $3
AND 过滤器 4 = $4
.

如何修改上面的 SQL 以响应未定义/空值并返回所有值。或者这是正确的策略。

最佳答案

如果您有索引,最好构建自定义 SQL。但是,如果性能问题不大(比如表很小),只需进行显式比较:

SELECT * 
FROM TABLE_NAME
WHERE ($1 IS NULL or filter1 = $1) AND
($2 IS NULL or filter2 = $2) AND
($3 IS NULL or filter3 = $3) AND
($4 IS NULL or filter4 = $4);

如果传入的值不是NULL,则相应地调整逻辑。例如:

WHERE ($1 = '' or filter1 = $1) AND
($2 = '' or filter2 = $2) AND
($3 = '' or filter3 = $3) AND
($4 = '' or filter4 = $4);

关于mysql - 如果使用 SQL 参数为 NULL,则返回所有值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44192602/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com