簡體   English   中英

查詢給出錯誤的結果

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM