2011-07-07 97 views
0
SELECT `bio_community_groups`.`id`, `bio_community_groups`.`name`, `bio_community_groups`.`description`, `bio_community_groups`.`members` 
FROM `bio_community_groups` 
WHERE `bio_community_groups`.`category_id` = '1' 
AND `bio_community_groups`.`name` LIKE '%rock%' 
OR `bio_community_groups`.`description` LIKE '%rock%' 

問題:沒有組ID = 1,但無論如何...它給了我所有的組,其中名稱或描述就像是'%rock%'查詢是給錯誤的結果

也許括號可以幫助我嗎?我應該把他們放在哪裏?

回答

3

或許,這就是你可能會尋找:

SELECT `bio_community_groups`.`id`, `bio_community_groups`.`name`, `bio_community_groups`.`description`, `bio_community_groups`.`members` 
FROM `bio_community_groups` 
WHERE 
(`bio_community_groups`.`category_id` = '1') 

AND 
(`bio_community_groups`.`name` LIKE '%rock%' 
OR `bio_community_groups`.`description` LIKE '%rock%'); 

在原始查詢,你會得到滿意的結果:

`bio_community_groups`.`description` LIKE '%rock% 

無論CATEGORY_ID可能。

0

AND在MySQL中位於OR之前。所以你的查詢就像(bio_community_groups.category_id = '1' AND bio_community_groups.name LIKE '%rock%') OR (bio_community_groups.description LIKE '%rock%)。只需放置適當的括號即可解決此問題