MYSQL SELECT子句提供不需要的结果。多个WHERE和语句
我希望这只会给出MYSQL SELECT子句提供不需要的结果。多个WHERE和语句,mysql,sql,inner-join,where-clause,Mysql,Sql,Inner Join,Where Clause,我希望这只会给出is_active=1的结果,但出于某种原因,它给出了相反的结果。我得到5个结果,所有的都处于活动状态=0 我遗漏了什么?我怀疑您的或/和括号有问题。运算符的优先级会造成混乱 你是说 SELECT `post`.*, `user_account`.`project_name` FROM `post` INNER JOIN `user_account` ON `post`.`user_id` = `user_account`.`user_id` WHERE `post`.
is_active=1
的结果,但出于某种原因,它给出了相反的结果。我得到5个结果,所有的都处于活动状态=0
我遗漏了什么?我怀疑您的或/和括号有问题。运算符的优先级会造成混乱 你是说
SELECT `post`.*, `user_account`.`project_name`
FROM
`post`
INNER JOIN `user_account` ON `post`.`user_id` = `user_account`.`user_id`
WHERE
`post`.`deleted_at` IS NULL
AND `is_active` = 1
AND `deleted_at` IS NULL
AND `end` > '2013-10-09'
AND `user_account`.`project_name` LIKE '%intensiivkursus%'
OR (
`title` LIKE '%intensiivkursus%'
OR `topics` LIKE '%intensiivkursus%'
OR `target_group` LIKE '%intensiivkursus%'
OR `lectors` LIKE '%intensiivkursus%'
OR `timetable` LIKE '%intensiivkursus%'
)
GROUP BY
`post`.`id`
ORDER BY
`post`.`created_at` DESC
或许
AND
(`user_account`.`project_name` LIKE '%intensiivkursus%'
OR `title` LIKE '%intensiivkursus%'
OR `topics` LIKE '%intensiivkursus%'
OR `target_group` LIKE '%intensiivkursus%'
OR `lectors` LIKE '%intensiivkursus%'
OR `timetable` LIKE '%intensiivkursus%'
)
@当我有一个或外括号时,我总是检查三次。当然,这可能是需要的,如果您管理运算符的优先级,这是非常有效的,但不是经常这样。是的,谢谢,就是这样。很简单,但确实令人困惑,特别是当你在第26小时醒来时:p
AND `user_account`.`project_name` LIKE '%intensiivkursus%'
AND (
`title` LIKE '%intensiivkursus%'
OR `topics` LIKE '%intensiivkursus%'
OR `target_group` LIKE '%intensiivkursus%'
OR `lectors` LIKE '%intensiivkursus%'
OR `timetable` LIKE '%intensiivkursus%'
)