SQLite中SELECT COUNT多AND条件查询返回0的问题求助
问题排查结论
SELECT COUNT 完全支持多条件组合查询,你遇到的返回结果不符合预期的问题是操作逻辑/数据匹配错误导致的,和COUNT函数本身无关。
核心问题原因
你当前查询条件里的字符串值都带了前置空格(' White'、' Female' 字符串开头有空格),出现组合查询返回0的常见原因有两个:
- 你存储的
race、sex字段值,没有同时满足带前置空格的' White'和' Female'的记录 - 其中一个字段的实际存储值没有前置空格,单条件查询时刚好匹配了带空格的脏数据,组合时没有交叉匹配结果
排查修复方案
- 先查询验证是否存在符合特征的原始记录,同时查看字段实际存储的格式:
SELECT race, sex FROM Table WHERE race LIKE '%White%' AND sex LIKE '%Female%' LIMIT 10;
如果该语句返回结果为空,说明你的表里确实不存在同时满足两个条件的记录,返回0是正确结果。
- 如果上述语句有返回结果,对比返回的
race、sex值的空格、大小写情况,修正你的查询条件即可。也可以直接用函数去除空格、统一大小写避免匹配误差:
-- 去除字段前后空格后匹配 SELECT COUNT(*) FROM Table WHERE TRIM(race) = 'White' AND TRIM(sex) = 'Female'; -- 同时统一大小写避免大小写敏感问题 SELECT COUNT(*) FROM Table WHERE UPPER(TRIM(race)) = 'WHITE' AND UPPER(TRIM(sex)) = 'FEMALE';
内容的提问来源于stack exchange,提问作者LexLuthor
相关产品推荐
相关产品推荐

