Mysql按日期排序,但忽略年份

Mysql按日期排序,但忽略年份,mysql,sql,Mysql,Sql,我有一个表,它有一个MysqlDATE字段类型 我正在搜索条目,需要在接下来的30天内首先对条目进行排序。但是,有些条目上的年份已经过期,因为它是重复数据 对于日期查找,我使用的是DAYOFYEAR,效果很好 问题是:我能先将以下内容按事件发生前的最少天数进行排序吗 select b.name, ue.event_title, ue.event_date from brains b join user_events ue on b.user_id=ue.user_id where b.user_

我有一个表,它有一个Mysql
DATE
字段类型

我正在搜索条目,需要在接下来的30天内首先对条目进行排序。但是,有些条目上的年份已经过期,因为它是重复数据

对于日期查找,我使用的是
DAYOFYEAR
,效果很好

问题是:我能先将以下内容按事件发生前的最少天数进行排序吗

select b.name, ue.event_title, ue.event_date from brains b
join user_events ue on b.user_id=ue.user_id
where b.user_id=63 and 
MOD(DAYOFYEAR(ue.event_date) - DAYOFYEAR(CURDATE()) + 365, 365) <= 30 
order by event_date desc 
从b中选择b.name、ue.event\u title、ue.event\u date
在b.user\u id=ue.user\u id上加入用户事件ue
其中b.user_id=63和
MOD(dayof year(ue.event_date)-dayof year(CURDATE())+365,365)算出了:

回答

select b.name, ue.event_title, ue.event_date,
(DAYOFYEAR(ue.event_date) - DAYOFYEAR(CURDATE())) as days
from brains b
join user_events ue on b.user_id=ue.user_id
where b.user_id=63 and 
MOD(DAYOFYEAR(ue.event_date) - DAYOFYEAR(CURDATE()) + 365, 365) <= 30 
order by days asc 
选择b.name、ue.event\u title、ue.event\u date、,
(DAYOFYEAR(ue.event_date)-DAYOFYEAR(CURDATE())作为天
来自大脑b
在b.user\u id=ue.user\u id上加入用户事件ue
其中b.user_id=63和

MOD(DAYOFYEAR(ue.event_date)–DAYOFYEAR(CURDATE())+365,365)这有什么关系?