[英]Query is Giving Wrong Results
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%'
组。
也许括号可以帮助我? 我应该把它们放在哪里?
也许这就是您可能正在寻找的:
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 是什么。
AND
在 MySQL 中位于OR
之前。 所以你的查询就像( bio_community_groups.category_id = '1' AND bio_community_groups.name LIKE '%rock%') OR (bio_community_groups.description LIKE '%rock%
)。 只需放置适当的括号即可解决此问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.