mysql - SQL - 由于 where 子句中的列未知,无法对别名进行条件处理

标签 mysql sql

我得到了以下查询,但是当我执行它时出现错误 - #1054 - Unknown column 'adress' in 'where clause' 我想知道为什么?当我删除 where 子句时,它通常显示为一列,不知道为什么会抛出错误。

SELECT zlec_status.nazwa                       AS Status, 
       piorytet.nazwa                          AS Priorytet, 
       Concat(koord.imie, ' ', koord.nazwisko) AS `Koordynator`, 
       Concat(zlec_adresy.miasto, ' - ', zlec_adresy.ulica, ' ', 
       zlec_adresy.oddzial) 
                                               AS `adress`, 
       zlec_z_dnia,zlec_id,
       zlec_nr, 
       zlec_do, 
       zlec_ogran, 
       awizacje, 
       awizacja_na_dzien, 
       termin_zamkniecia, 
       tresc, 
       uwagi 
FROM   zlec 
       INNER JOIN koord 
               ON zlec.koord = koord.id 
       INNER JOIN zlec_adresy 
               ON zlec.zlec_addres = zlec_adresy.id 
       INNER JOIN piorytet 
               ON zlec.priorytet = piorytet.id 
       INNER JOIN zlec_status 
               ON zlec.status_zlecenia = zlec_status.id 
WHERE `adress` LIKE '%Some%'

最佳答案

您不能在 where 子句中为 select 使用 select 中定义的列别名。你有两个选择。 MySQL 扩展了 having 的使用,因此您可以使用它:

HAVING `adress` LIKE '%Some%'

或者,您可以使用完整的表达式:

Concat(zlec_adresy.miasto, ' - ', zlec_adresy.ulica, ' ', 
       zlec_adresy.oddzial) LIKE '%Some%'

或者,您可以使用子查询,但我不建议这样做。

关于mysql - SQL - 由于 where 子句中的列未知,无法对别名进行条件处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31394083/

相关文章:

php - 为什么数据表默认不能按降序显示数据?

php - 没有索引导出/导入 5000 万行数据库?

mysql - SQL - 我怎样才能在同一个团队中获得多个管理员

mysql - SQL 左连接 : how to return the newest from tableB and grouped by another field

javascript - Node.js MySql 如何知道用户 ID 以便在登录后在查询中使用它

mysql - 全局变量未传递到下一个包

mysql - MS Access - 使用表单添加新记录并向子表单添加信息

php - 如何在一个查询中更新多行

sql - PostgreSQL last_value 忽略空值

sql - 如何仅为当前进程禁用 SQL Server 触发器?