经过一段时间的搜索,我发现没有“好”的解决方案来从MySQL数据库即将到来的生日只有一个单一的选择语句。我在网络上发现了许多不同的策略,但没有一个在特别是一年的变化中工作得很好。优雅的方式来选择MySQL的即将到来的生日
现在我想分享我的最终解决方案:
SELECT mem_id, mem_dateBirth, MONTH(mem_dateBirth), DAY(mem_dateBirth)
FROM rs_mem
WHERE mem_dateBirth IS NOT NULL AND
mem_dateBirth > '1900-01-01'
ORDER BY (date_format(NOW(), '%m%d') >= date_format(mem_dateBirth, '%m%d')),
date_format(mem_dateBirth, '%m%d');
的结果将是所有即将到来的生日(也如果生日是一年以后的变化)的列表。
你能解释一下你的情况下即将到来的生日吗? – Jens 2014-09-25 06:11:25
您好Jens,在我的情况下,这意味着我想要检索会员(用户)的生日将是NOW()的下一个相对位置。 – 2014-09-25 06:23:39
如果你知道接下来可以使用bewteen来比较日期:'select * from rs_mem where mem_dateBirth and now()order by mem_dateBirth' –
Jens
2014-09-25 06:26:46