这是我的user_crime_details
表:
当我尝试此查询时:
SELECT *
FROM (`user_crime_details`)
WHERE `group_id` = '1'
AND `insert_date` = CURDATE( )
OR `last_update_date` = CURDATE( )
ORDER BY `id` DESC
这始终是结果:
您可以看到结果错误,因为group_id不等于1也被选中。 我的查询有问题吗?请帮助。
答案 0 :(得分:4)
您需要通过在OR
部分添加括号来对条件进行分组。
WHERE group_id = 1 AND
(insert_date = CURDATE() OR last_update_date = CURDATE())
与
相同WHERE group_id = 1 AND CURDATE() IN (insert_date, last_update_date)
PS:列周围的反引号是可选,因为名称不在MySQL的保留关键字列表中。
答案 1 :(得分:2)
结果是错误的,因为条件之后或者每行都是TRUE(last_update_date = CURDATE())
我想你想要这个查询?:
SELECT *
FROM (`user_crime_details`)
WHERE
`group_id` = '1'
AND
(
`insert_date` = CURDATE( )
OR `last_update_date` = CURDATE( )
)
ORDER BY `id` DESC