0

我不太喜欢数据库,并且在从查询中的对象中提取地理坐标时遇到以下问题。我正在使用MySql

所以我有一张这样的桌子:

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)Y(gps)函数分别返回的经度纬度字段。

问题是MarketDetails表有MD别名(因为那时我将与其他表一起加入 JOIN),所以我尝试也给前面的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别名的表的 X(gps) 和 Y(gps)?

4

1 回答 1

1

别名出现在上,而不是函数上:

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;
于 2017-09-29T12:26:20.500 回答