2017-04-19 103 views
0
___________________________ 
referrer_id | int(11) | 
--------------------------- 
practice_name|varchar(256)| 
___________________________ 
contact_name |varchar(256)| 
--------------------------- 
address  |varchar(256)| 
--------------------------- 
city   |varchar(256)| 
--------------------------- 
county  |varchar(256)| 
---------------------------  
postcode  |varchar(256)| 
--------------------------- 
contact_num |varchar(256)| 
--------------------------- 
creator_id |int(11)  |  


$sql = "SELECT * FROM recipient 
WHERE practice_name LIKE '%dental%' 
OR contact_name LIKE '%couchman%' 
AND creator_id = '1219676200'"; 

我想查詢找到收件人在實踐中名稱包含「牙齒」或CONTACT_NAME包含「couchman」,但只有在creator_id = 1219676200但查詢將返回滿足前兩個條件中的任意一個的所有行,而與creator_id無關。不明白爲什麼MySQL查詢沒有返回預期的結果

爲什麼查詢忽略最後一個條件?

+1

嘗試把括號圍繞第2和第3個條件: SELECT * FROM收件人 WHERE practice_name LIKE「%牙科%' OR(contact_name LIKE'%couchman%' AND creator_id ='1219676200''); – Steven

+0

@Steven - 謝謝 – tatty27

回答

2

你可能希望將你的條件下使用()象下面這樣,因爲AND有更高的優先級高於OR

SELECT * FROM recipient 
WHERE (practice_name LIKE '%dental%' 
OR contact_name LIKE '%couchman%') 
AND creator_id = '1219676200' 
+0

謝謝,當它允許我接受時 – tatty27