2011-07-08 101 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 
相关问题