#1054 - MySQL 中“where 子句”中的未知列“proximite”

Posted

技术标签:

【中文标题】#1054 - MySQL 中“where 子句”中的未知列“proximite”【英文标题】:#1054 - Unknown column 'proximite' in 'where clause' in MySQL 【发布时间】:2014-03-20 16:01:13 【问题描述】:

运行下面的查询时,我在 phpMyAdmin 中遇到了 mysql 错误:

1054 - 'where 子句'中的未知列 'proximite'

我正在使用 mysql 5.6 和 phpMyAdmin 我在使用 Proximite 时出现错误,请帮助我 例如,寻找距离巴黎埃菲尔铁塔最近的 10 家餐厅(纬度:48.858205,经度:2.294359)且距离小于 1 公里。 该数据库包含一个表“restaurants”。该表包含与餐厅的纬度和经度相对应的“lat”和“lng”等字段 这是我的尝试:

SELECT *, get_distance_metres('48.858205', '2.294359', lat, lng) 
  AS proximite 
  FROM restaurants 
  WHERE proximite < 1000 ORDER BY proximite ASC 
  LIMIT 10
    

【问题讨论】:

【参考方案1】:

您不能在 same 查询的 WHERE 子句中使用该别名。

试试这个:

SELECT *, get_distance_metres('48.858205', '2.294359', lat, lng) 
  AS proximite 
  FROM restaurants 
  WHERE get_distance_metres('48.858205', '2.294359', lat, lng) < 1000
  ORDER BY proximite ASC 
  LIMIT 10

文档:

标准 SQL 不允许在 WHERE 子句中引用列别名。 施加此限制是因为当 WHERE 子句 评估,列值可能尚未确定。

Source

【讨论】:

更多关于 SQL 的信息order of operations it return me null ligne :"MySQL a retourné un résultat vide (aucune ligne)" 当我在条件(100000)中投入很大的价值时它会重新出现,但我希望餐厅只需低于 1 公里(1000 米)

以上是关于#1054 - MySQL 中“where 子句”中的未知列“proximite”的主要内容,如果未能解决你的问题,请参考以下文章

错误代码:1054。“where 子句”中的未知列“sdate”

SQLSTATE [42S22]:找不到列:1054 未知列 '0' where 子句

错误代码:1054 'where 子句'中的未知列'billId'

未找到列:1054“where 子句”中的未知列“MONTH(date)”[重复]

在 MySQL 查询的 WHERE 子句中使用列别名会产生错误

SQLSTATE [42S22]:找不到列:1054 'where 子句为啥'中的未知列'4'我找不到错误