2011-07-07 15 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%' 

問題を与えています。クエリは、間違った結果に

多分括弧が私を助けますか?どこに置くべきですか?

答えて

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%)のようになります。これを解決するために適切な角括弧を配置するだけです。