[英]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.