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%'

多分ブラケットが私を助けるかもしれませんか?それらをどこに置くべきですか?

4

2 に答える 2

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 が何であれ。

于 2011-07-07T12:34:02.813 に答える
0

ANDMySQLORで優先されます。したがって、クエリは ( bio_community_groups.category_id = '1' AND bio_community_groups.name LIKE '%rock%') OR (bio_community_groups.description LIKE '%rock%) のようになります。これを解決するには、適切な括弧を配置するだけです

于 2011-07-07T12:38:05.107 に答える