幫助我理解爲什麼我得到不同支數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來更改表名稱
沒有理由讓三個單獨查詢的總和小於第二個查詢的結果。看着這些數字,我懷疑你錯誤地輸入了一些東西。 –
第二和第三不能不同 –
我會仔細檢查我的所有號碼 –