我刚接触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不是我桌子上的一列,只是为我创建的查询分配的?有没有办法纠正这个?非常感谢任何帮助。
感谢
答案 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