You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL查询参数异常:传入-1时无法返回全部行的问题

解决SQL条件查询的参数匹配问题

原语句的问题在于,当@statusParam = -1时,WHERE条件等价于status = -1 OR status = -1,也就是只会筛选status等于-1的行,而你的表中status只有1和0,所以返回空结果,不符合预期。

正确的写法应该调整条件逻辑,当参数为-1时直接返回所有行,否则匹配status与参数值:

set @statusParam = -1;
SELECT * FROM `db`.table_name 
WHERE @statusParam = -1 OR `status` = @statusParam;

逻辑说明

  • 当@statusParam传入-1时,@statusParam = -1这个条件成立,整个WHERE表达式结果为真,返回表中所有行
  • 当@statusParam传入0或1时,@statusParam = -1不成立,会执行status = @statusParam的匹配逻辑,返回对应状态的行

这样就能完全满足你的需求:参数为-1返回全部行,其他值返回匹配状态的行。

内容的提问来源于stack exchange,提问作者user1268139

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 23:18:11