MySQL 错误 1054 : Setting column name and use to where clause

标签 mysql sql select

我如何使用带有新列名称的 where 子句?

SELECT 
    IF(cond, 'yes', 'no') AS 'NEW_COLUMN'
FROM
    table
WHERE
    NEW_COLUMN = 'yes'

MySQL 错误 1054:“where 子句”中的未知列“NEW_COLUMN”

最佳答案

在大多数版本的 SQL 中,您需要使用子查询、公用表表达式或重复逻辑。 MySQL 扩展了 having 子句的使用来处理这个问题。

因此,以下非标准 SQL 在 MySQL 中有效:

SELECT IF(cond, 'yes', 'no') AS 'NEW_COLUMN'
FROM table
HAVING NEW_COLUMN = 'yes';

关于MySQL 错误 1054 : Setting column name and use to where clause,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28239450/

相关文章:

mysql - 查询将所有行中的增值税价格降低 20%

php - 显示表中特定行的详细信息

mysql - 来自两个单独表的 SQL 结果(差异)

javascript - 根据选择更改选定值

php - 按客户电子邮件或姓名搜索订单

php - 使用 php 内容创建 html 表

mysql - 如何创建 SQL 查询来更新表中的数据?

sql - 分组依据在我的声明中不起作用。为什么

android - TextView在同一行,选择一个取消另一个

javascript - 通过 JS 获取 Select 选项值并设置数组索引