如何在具有特定别名的 table 上正确 select 一个 MySql 函数值?
How can I correctly select a MySql function value on a table having a specific alias?
我不太喜欢数据库,在从查询中的 point 对象中提取地理坐标时遇到以下问题。我正在使用 MySql.
所以我有一个 table 这样的:
Field Type Null Key Default Extra
------------------------------------------------------------------------------------
id bigint(20) NO PRI auto_increment
localization_id bigint(20) NO MUL
market_name varchar(255) NO
market_cod varchar(255) YES
description text YES
gps point YES
如您所见,查询包含类型为 point.
的 gps 字段
运行 这个查询工作正常:
SELECT
MD.market_name as market_name,
MD.description as market_description,
X(gps)as longitude,
Y(gps)as latitude
FROM MarketDetails as MD
并且我正确地检索了 X(gps)[= 分别返回的 longitude 和 latitude 字段46=] 和 Y(gps) 函数。
问题是 MarketDetails table 有 MD 别名(因为那时我将与其他人一起加入 JOIN tables), 所以我也尝试用这种方式为之前的 X(gps) 和 Y(gps) 函数起别名:
SELECT
MD.market_name as market_name,
MD.description as market_description,
MD.X(gps)as longitude,
MD.Y(gps)as latitude
FROM MarketDetails as MD
但是执行此查询时我收到以下错误消息:
#42000FUNCTION MD.X does not exist
那么,怎么了?我错过了什么?如何正确引用具有 MD 别名的 table 的 X(gps) 和 Y(gps)?
别名位于 列 ,而不是 函数 :
SELECT MD.market_name as market_name,
MD.description as market_description,
X(MD.gps)as longitude,
Y(MD.gps)as latitude
FROM MarketDetails MD;
我不太喜欢数据库,在从查询中的 point 对象中提取地理坐标时遇到以下问题。我正在使用 MySql.
所以我有一个 table 这样的:
Field Type Null Key Default Extra
------------------------------------------------------------------------------------
id bigint(20) NO PRI auto_increment
localization_id bigint(20) NO MUL
market_name varchar(255) NO
market_cod varchar(255) YES
description text YES
gps point YES
如您所见,查询包含类型为 point.
的 gps 字段运行 这个查询工作正常:
SELECT
MD.market_name as market_name,
MD.description as market_description,
X(gps)as longitude,
Y(gps)as latitude
FROM MarketDetails as MD
并且我正确地检索了 X(gps)[= 分别返回的 longitude 和 latitude 字段46=] 和 Y(gps) 函数。
问题是 MarketDetails table 有 MD 别名(因为那时我将与其他人一起加入 JOIN tables), 所以我也尝试用这种方式为之前的 X(gps) 和 Y(gps) 函数起别名:
SELECT
MD.market_name as market_name,
MD.description as market_description,
MD.X(gps)as longitude,
MD.Y(gps)as latitude
FROM MarketDetails as MD
但是执行此查询时我收到以下错误消息:
#42000FUNCTION MD.X does not exist
那么,怎么了?我错过了什么?如何正确引用具有 MD 别名的 table 的 X(gps) 和 Y(gps)?
别名位于 列 ,而不是 函数 :
SELECT MD.market_name as market_name,
MD.description as market_description,
X(MD.gps)as longitude,
Y(MD.gps)as latitude
FROM MarketDetails MD;