rip*_*234 2 mysql sql mysql-error-1054
为什么以下查询无效?Mysql抱怨z - 我不能在WHERE子句中使用别名吗?
SELECT x + y AS z, t.* FROM t
WHERE
x = 1 and
z = 2
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
Error Code : 1054
Unknown column 'z' in 'where clause'
Run Code Online (Sandbox Code Playgroud)
http://dev.mysql.com/doc/refman/5.0/en/problems-with-alias.html
标准SQL不允许在WHERE子句中引用列别名.强制执行此限制是因为在评估WHERE子句时,可能尚未确定列值.例如,以下查询是非法的:
Run Code Online (Sandbox Code Playgroud)SELECT id, COUNT(*) AS cnt FROM tbl_name WHERE cnt > 0 GROUP BY id;
试试这个,相反:
SELECT x + y AS z, t.* FROM t WHERE x = 1 HAVING z = 2;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4010 次 |
| 最近记录: |