我有一个表,用于存储我的客户的姓名和生日。例如下面的例子:
name DOB gender email
Tony 1987-04-20 male [email protected]
Susan 1985-06-13 female [email protected]
在我的网站上,我想根据用户的DOB搜索并显示为这样的年龄范围(18岁以下,18-25岁,26-35岁,36-45岁,46-55岁和55岁以上)
对于托尼和苏珊,他们将属于26-35岁。在我的网站上,我希望有一个表按年龄范围显示名称,如下所示。
Under 18 18-25 26-35 36-45 46-55 Over 55
xxx xxx Tony xxx xxx xxx
xxx xxx Susan xxx xxx xxx
使用PHP如何找到DOB的年龄范围?
我有一个例子,这样你就可以做到
步骤1
SELECT
round(DATEDIFF(CURRENT_DATE,t.birthdate)/365) AS ageInYears,
name
FROM member t
从表成员获取姓名和年龄
第2步
SELECT
(`ageInYears` > 40) as `data1`
,name
FROM (step: 1) as t
创建的列“ data1”的年龄> 40,则在年龄比较上创建多个列,例如(
ageInYears
<18)为data1
,(ageInYears
> 18和ageInYears
<25)为data2
步骤:3
SELECT
MAX(IF(`data1` = 1,name,null)) '35to40',
MAX(IF(`data1` = 0,name,null)) '0to35'
From (step 2) as t group by name
创建了第35to40列和第0to35列,使用if条件检查'data1'= 1的位置,如果不等于1,则在其中放置名称
最后结果
SELECT
MAX(IF(`data1` = 1,name,null)) '35to40',
MAX(IF(`data1` = 0,name,null)) '0to35'
From (SELECT
(`ageInYears` > 40) as `data1`
,name
from ( SELECT
round(DATEDIFF(CURRENT_DATE,t.birthdate)/365) AS ageInYears
,name
FROM member t) as t) as t group by name
o / p
35to40 0to35
NULL asdasd
dhara NULL
NULL g
ravi NULL
sonam NULL
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句