Where 子句中的未知列

2021-11-20 00:00:00 sql mysql mysql-error-1054

我有一个简单的查询:

SELECT u_name AS user_name FROM users WHERE user_name = "john";

我在 where 子句中得到 Unknown Column 'user_name'.即使在 select 'u_name as user_name' 之后,我也不能在语句的其他部分引用 'user_name' 吗?

I get Unknown Column 'user_name' in where clause. Can I not refer to 'user_name' in other parts of the statement even after select 'u_name as user_name'?

推荐答案

SQL 是从右到左向后评估的.所以 where 子句在 select 子句之前被解析和评估.因此,尚未发生 u_name 到 user_name 的别名.

SQL is evaluated backwards, from right to left. So the where clause is parsed and evaluate prior to the select clause. Because of this the aliasing of u_name to user_name has not yet occurred.

相关文章