MySQL Query从出生日期开始计算年龄

Cam*_*lle 1 mysql

我的查询有问题,

SELECT id, pseudo, nom, prenom, sexe, ville, 
       FLOOR(DATEDIFF (NOW(), date_naissance)/365) AS mAge 
FROM user 
WHERE sexe = 'Homme' AND mAge BETWEEN 18 AND 25 OR ville = 'Bordeaux'
Run Code Online (Sandbox Code Playgroud)

它应该返回匹配用户的where条件.问题是如下,mAge不存在我得到以下错误:

1054 - 'where子句'中的未知列'mAge'

看起来我的别名在where条件下无法正常工作.

如果我删除了mAge WHERE CLAUSE,我成功获得了mAge别名.

我需要你们

提前致谢 !

flu*_*rdy 6

您不能在WHERE子句中使用列别名:http://dev.mysql.com/doc/refman/5.0/en/problems-with-alias.html.

您必须重新考虑您的查询或更改为:

SELECT id, pseudo, nom, prenom, sexe, ville, 
   FLOOR(DATEDIFF (NOW(), date_naissance)/365) AS mAge 
FROM user 
WHERE sexe = 'Homme' AND 
FLOOR(DATEDIFF (NOW(), date_naissance)/365) BETWEEN 18 AND 25 
OR ville = 'Bordeaux'
Run Code Online (Sandbox Code Playgroud)

你可能还想查看你的AND和OR,以及你可能想要包含一些括号.