在MySQL查询中如何将简单数学与字符串与php相结合

在MySQL查询中如何将简单数学与字符串与php相结合,php,Php,我想在MySQL查询中添加一个基于用户生日的过滤器 提供: $cur_year = 2012 $cur_month = 07 $cur_day = 18 如何计算差异$cur\u year-$minAge,然后显示-07-19(月和日) 我正在尝试这个: `Birthday` < $cur_year - $minAge'-$cur_month-$cur_day' “生日”

我想在MySQL查询中添加一个基于用户生日的过滤器

提供:

$cur_year = 2012
$cur_month = 07
$cur_day = 18
如何计算差异
$cur\u year-$minAge
,然后显示
-07-19
(月和日)

我正在尝试这个:

`Birthday` < $cur_year - $minAge'-$cur_month-$cur_day'
“生日”<$cur\u year-$minAge'-$cur\u month-$cur\u day'
我有理由相信您正在尝试这样做:

$minAge = 18;

$query = "
  SELECT
    `somecol`, `someothercol`,
    IF(DATE_ADD(`Birthday`, INTERVAL ".((int) $minAge)." YEAR) < NOW(), 1, 0) AS `isOldEnough`
  FROM `tablename`
  WHERE `somecol` = 'someval'
";
$minAge=18;
$query=”
挑选
`somecol`、`someothercol`、,
如果(日期)加上(`birth`,INTERVAL.“((int)$minAge.“YEAR)

在每个返回的行中,如果用户是18岁,结果中的
isOldEnough
键将包含
1
,如果用户不是18岁,则包含
0

您询问MySql,但您的代码是PHP?!仍然不清楚您是想在查询中还是使用PHP代码,您的意思是“生日:”($cur_year-$minAge)。“-$cur_month-$cur_day”;?如果您有示例数据,请添加您想要的输出示例?(同时添加
$minAge
是什么,这样就没有误会了?用户输入年龄范围$minAge=最小年龄,$maxAge=最大年龄。输出应该是当前日期-最小年龄。例如:如果今天是
2012-07-18
20
它应该返回:
1992-07-18
我最终使用了:“
生日”
“($cur\u year-$minAge)。”-$cur\u month-$cur\u day”“刚刚注意到有人对这个想法发表了评论。无论如何,我会接受这一点,因为这是唯一的答案,而且似乎也有效。@Liso22这绝对是一个比从PHP中提取日期字符串更好的选择,一方面,它只需要在查询中传递一个值,
$minAge
。您应该阅读MySQL。