mysql查询根据分歧条件进行选择

时间:2018-11-22 07:11:17

标签: mysql sql

我有一个包含以下列的表格

id status created_at
1   close  ..
2   close  ..
3   open   ..

现在,我正在尝试以这种方式获取所有三个月以上的记录

select * from table where created_at >= NOW() - interval 3 month 

但是我还想要开放且早于3个月的记录,如何在同一sql中添加该条件?

4 个答案:

答案 0 :(得分:1)

只需将该条件添加到您的where子句中即可。请注意,您不需要在条件中包括“大于3个月”的部分,因为无论如何,where子句的第一部分都会提取3个月以上的任何东西,因此OR status = 'open'将仅找到3个月以上的其他记录。

select * 
from table
where columnX = 'some ID' AND
   (created_at >= NOW() - interval 3 month OR status = 'open')

答案 1 :(得分:0)

您可以尝试使用OR

select * from table where created_at >= NOW() - interval 3 month 
or (status='open' and created_at < NOW() - interval 3 month)

答案 2 :(得分:0)

使用OR

select * from table where created_at >= NOW() - interval 3 month or status='open'

答案 3 :(得分:0)

Select * from Table where add_date(date_column, interval 3 month)> now() or status = "open";