SQL联合查询返回空结果求助:LIKE与IN子句组合无数据
问题诊断与解决方案
我一眼就看出问题出在你的IN子句写法上!
你当前SQL里的IN ('41,48,49')是错误的——数据库会把'41,48,49'当成单个完整的字符串值去匹配job_id字段:
- 如果
job_id是数字类型:字符串和数字无法匹配,自然找不到符合条件的记录; - 如果
job_id是字符串类型:你的数据里也不存在job_id等于"41,48,49"的条目,所以组合条件后返回空结果。
而你单独使用IN条件时应该是写对了格式(比如每个值单独处理),所以能查到数据。
修正后的SQL写法
根据job_id的字段类型选择对应的写法:
- 如果job_id是数字类型:去掉单引号,每个数值单独列出
select * from applies_jobs where appid like '%RAD-0001%' and job_id IN (41, 48, 49) order by id asc
- 如果job_id是字符串类型:每个值单独用单引号包裹
select * from applies_jobs where appid like '%RAD-0001%' and job_id IN ('41', '48', '49') order by id asc
这样调整后,两个条件就能正确组合过滤,应该就能查到你想要的数据了。
内容的提问来源于stack exchange,提问作者Jaleel Qamar
相关产品推荐
相关产品推荐

