使用PHP的出生日期至年龄范围

节点效应

我有一个表,用于存储我的客户的姓名和生日。例如下面的例子:

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的年龄范围?

查达(Parth Chavda)

我有一个例子,这样你就可以做到

步骤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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章