2012-05-17 70 views
0

在嘗試此查詢:MySQL或語句輸出沒有意義

SELECT * FROM superpart WHERE 
Brick_subpart_id = 603 OR 145; 

的輸出是:

'200', '144' 
'10002', '144' 
'620', '145' 

爲什麼在 '144' 顯示出來?我沒有要求在603到145之間的範圍?即使如此,144低於145 ...

回答

1
SELECT * FROM superpart WHERE 
Brick_subpart_id In(603 , 145) 
+0

感謝的作品。無法檢查你的答案(剩餘7分鐘),但你有什麼想法爲什麼我的查詢給出了這些結果? – Jasper

6

這是因爲您沒有比較145與任何東西,因此它變爲true,並且您的查詢匹配所有記錄。

查詢應該是

SELECT * FROM superpart WHERE 
Brick_subpart_id = 603 OR Brick_subpart_id = 145; 

它可以改寫爲:

SELECT * FROM superpart WHERE 
Brick_subpart_id IN (603,145)