經過一段時間的搜索,我發現沒有「好」的解決方案來從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