MySQL查询consolidation_requests表为何返回零结果?
问题排查与解决方法
1. 拼写错误修正
你当前的查询中shipment_status的排除值存在拼写错误:原查询写的是'cencel by user',正确的取消拼写应为'cancel by user',拼写不匹配会导致筛选逻辑不符合预期,修正该条件即可。
2. NULL值兼容处理
SQL的!=运算符无法匹配值为NULL的字段,如果存在shipment_status为NULL的记录需要被查询到,需要补充NULL判断,调整后的条件如下:
and (shipment_status != 'cancel by user' OR shipment_status IS NULL)
3. 精确匹配校验
如果修正后仍无符合预期的结果,可逐一校验筛选条件的匹配性:
- 确认
user_id = 23的对应记录是否真实存在 - 确认
compiling_status的值是否完全等于'consolidation',排查是否存在前后空格、大小写差异、拼写错误的情况 - 可先仅保留
user_id = 23条件查询全量数据,核对各个字段的实际值后再调整筛选逻辑
修正后的完整查询示例
select * from `consolidation_requests` where `user_id` = 23 and `compiling_status` = 'consolidation' and (shipment_status != 'cancel by user' OR shipment_status IS NULL)
内容的提问来源于stack exchange,提问作者M.EJaz
相关产品推荐
相关产品推荐

