如何在具有特定别名的 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)[= 分别返回的 longitudelatitude 字段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;