mysql - 在 mysql 中使用别名不起作用

标签 mysql

我对别名的使用感到困惑。例如,下面的查询工作正常

select * from 
(
select ROW_NUMBER() over (partition by prodid order by quantity desc) as 'rankin',prodid,quantity from sales
) A
where rankin=1

但是当我按照下面的代码片段所示修改它时,我收到错误:“无效的列名'rownumber'”。

select ROW_NUMBER() over (order by quantity) as 'rownumber' from sales
where rownumber = 1

请解释一下差异。

最佳答案

这是因为SELECT是在WHERE之后执行的,而FROM是在WHERE之前执行的,所以它不能在第二个查询中使用,但可以在第一个查询中使用。

关于mysql - 在 mysql 中使用别名不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18198425/

相关文章:

php - 使用 WordPress 插件选项中存储的 Mysql 数据

mysql - 如果没有这样的行,则插入到表中

mysql - 替换select语句mysql中不同位置的多个关键字

创建 TableA 记录时,MySQL 自动将记录插入 TableB

javascript - 通过用户检查元素禁止更改 JS 函数中的值

java - 使用预准备语句的 SQL 语法错误

php - 数据库设计: best practice for designing a forum table

php - 成功插入MySQL表后更新页面

mysql - Plesk 11 中具有多个数据库的单个用户

php - 从 mysql 中选择带有订单字段的查询