2011-07-08 164 views
1

假設我的MySQL數據庫結構是這樣的。如何根據生日日期的年齡對MySQL結果進行排序

ID  Name BirthdayDate 
------------------------------------- 
1  John 1974-05-21 
2  Peter 1977-11-10 
3  Chang 1981-04-01 
.................. 
.................. 
100 Smith 1945-03-21 

如何使一個SQL語句排序年齡例如

40 > 45 above 
35 <= below or equal 35 

讓我知道

+0

你不會要能夠分類到*組*的例子範圍。你最好計算'age'和'ORDER BY age',然後用另一種語言進行分組。 –

回答

1
ORDER BY IF(BirthdayDate < DATE_SUB(NOW(), INTERVAL 35 YEARS), 0, 1), 
     BirthdayDate 

這將顯示在第一個的人,他們的年齡> 35年後 - 其他

+0

「IF」與列「ORDER BY」結合使用+1。我仍然看不到結果集的有用性。 –

+0

@Jason McCreary:我也是;-)但可能OP需要;-) – zerkms

+0

謝謝zerkms ..;) – emma

0

試試更簡單

SELECT * FROM YOUR_TABLE_NAME 
WHERE TIMESTAMPDIFF(YEAR,BirthdayDate, CURDATE()) > 45 

OR

SELECT * FROM YOUR_TABLE_NAME 
WHERE TIMESTAMPDIFF(YEAR, BirthdayDate, CURDATE()) BETWEEN 18 AND 45 
相關問題