我有一个用户表,其中有一个生日日期字段:
buddy_auto_id int(11) PK
user_id varchar(128)
buddy_user_id varchar(128)
buddy_name varchar(128)
buddy_bday date
buddyuser_id varchar(20)
active enum('Yes','No')
requestsentby int(11)
whenrequested timestamp
我试图找到与今天日期相比生日最快的 3 个用户,然后显示他们生日前的天数,从早到晚排序。
这在 SQL 查询中是否可行,还是我必须将其取出并让 PHP 执行等式?
非常感谢
最佳答案
我们首先需要计算下一个生日,然后按该值排序:
select *,
buddy_bday + interval
if(
month(buddy_bday) < month(now()) or
(month(buddy_bday) = month(now()) and day(buddy_bday) < day(now())),
year(now())+1,
year(now())
) - year(buddy_bday) year as next_bday
from buddies order by next_bday - date(now());
长 if 语句判断好友今年是否已经过生日。
关于php - 从今天开始的 MySQL 日期查找器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8307994/