无法在运营商之间获得输出

时间:2014-12-29 07:01:45

标签: php mysql

我刚接触php和mysql;我的桌子上有一个fname,lname,bdate;我有一个mysql查询,从mysql的出生日期开始提取年龄;

 SELECT FNAME, LNAME, TIMESTAMPDIFF(YEAR, BDATE, CURDATE()) AS AGE FROM perinfo

我想要做的是按照10到19岁,年龄在20到29岁之间的群体过滤输出。我对它进行了一些研究,发现操作员之间可以做到但我想知道它为什么不起作用;我将它添加到我的查询中,但它没有给我任何输出。

 WHERE AGE BETWEEN 10 and 19

可能是因为AGE不是我桌子上的一列,只是为我创建的查询分配的?有没有办法纠正这个?非常感谢任何帮助。

感谢

1 个答案:

答案 0 :(得分:3)

  

不允许在WHERE子句中引用列别名,因为在执行WHERE子句时可能尚未确定列值。

表示您不能在where子句中使用别名。使用

SELECT FNAME, LNAME, TIMESTAMPDIFF(YEAR, BDATE, CURDATE()) AS AGE 
FROM perinfo
WHERE TIMESTAMPDIFF(YEAR, BDATE, CURDATE()) BETWEEN 10 and 19