帮助我理解为什么我得到不同支数SQL查询(AND和OR)混淆
查询1
SELECT Count(*)
FROM `foo`
WHERE `status_id` = 2
AND `updated_at` < Date(Now() - INTERVAL 1 day)
AND `number` LIKE 'A390%'
OR `number` LIKE 'A391%'
OR `number` LIKE 'A392%'
结果= 20000
查询2
SELECT Count(*)
FROM `foo`
WHERE `status_id` = 2
AND `updated_at` < Date(Now() - INTERVAL 1 day)
AND (`number` LIKE 'A390%'
OR `number` LIKE 'A391%'
OR `number` LIKE 'A392%')
个结果= 14967
SELECT Count(*)
FROM `foo`
WHERE `status_id` = 2
AND `updated_at` < Date(Now() - INTERVAL 1 day)
AND `number` LIKE X
运行的每个(A390,A391,A392)上述查询分别给我:
'A390%' = 0; 'A391%' = 1496; 'A392%' = 10000;
编辑: 添加屏幕截图使其更加清晰。我不得不做一些Photoshop来更改表名称
没有理由让三个单独查询的总和小于第二个查询的结果。看着这些数字,我怀疑你错误地输入了一些东西。 –
第二和第三不能不同 –
我会仔细检查我的所有号码 –