这是我在数据库中搜索符合特定条件的候选人的查询。我正在使用php,mysql,html
$Odata = mysql_query("SELECT * FROM p_candidate WHERE(`gender` LIKE '%".$Gender."%')
AND (`verbal` LIKE '%".$Verbal."%') AND(`waiver` LIKE '%".$Waiver."%')
AND(`waiver_type` LIKE '%".$W_Type."%') AND(`sel_staff` LIKE '%".$A_Staff."%')
AND(`sel_peers` LIKE '%".$A_Peers."%')AND(`verbal` LIKE '%".$Awake."%')
AND(`ambulatory` LIKE '%".$Ambulatory."%') AND(`function` LIKE '%".$Function."%')"
) or die(mysql_error());
我想添加另一个标准 - 成人/儿童。 我将出生日期作为DB中的一列。如果候选人在18岁以上,则属于成人,否则为儿童。
用户可能想要搜索包含$ Odata中所有内容的成人。我怎么能这样做?
浏览Calculate Age in MySQL (InnoDb) 和Search age range in mysql, php我知道它可以独立完成,但我怎样才能将它合并到我的上述查询中。这可能吗?
答案 0 :(得分:0)
这可能会有所帮助
示例数据
create table dob
(
dob datetime
)
;
insert into dob select '2001-10-08' ;
insert into dob select '1976-11-28' ;
找出孩子或成人:
select
dob,
case when dob > Current_date() - INTERVAL 18 YEAR then 'child' else 'adult' end
from dob
答案 1 :(得分:0)
您可以在official MySQL documentation中找到正确的答案:
SELECT CASE WHEN TIMESTAMPDIFF(YEAR,dob,CURDATE()) >=18 THEN 'adult' ELSE 'child' END
FROM p_candidate;