2

私はこのクエリを持っています:

SELECT locations.id, 1609.34 * 3956 * 2 * 
            ASIN(
                SQRT(
                    POWER(
                        SIN(
                            (55.170000 - abs(locations.latitude)) 
                        * pi() / 180 / 2), 2) + 
                        COS(55.170000 * pi() / 180 ) *
                        COS(abs
                            (locations.latitude) * pi() / 180) * POWER(SIN((-7.400000 - (locations.longitude)) *  pi() / 180 / 2), 2)
            ) 
            ) as result 
        FROM locations order by result asc limit 10;

私が望むのは、locations.id列のみを取得することですが、同時に数式で並べ替えて、休止状態を簡単に使用できるようにすることです。

選択結果テーブルに「結果」の新しい列を入れたくありません。

MySQL でこれを行うにはどうすればよいですか?

4

1 に答える 1

4

クエリを別のクエリでラップする

SELECT 
    Location
FROM (  
    SELECT 
        locations.id as Location, 
        1609.34 * 3956 * 2 * 
                ASIN(
                    SQRT(
                        POWER(
                            SIN(
                                (55.170000 - abs(locations.latitude)) 
                            * pi() / 180 / 2), 2) + 
                            COS(55.170000 * pi() / 180 ) *
                            COS(abs
                                (locations.latitude) * pi() / 180) * POWER(SIN((-7.400000 - (locations.longitude)) *  pi() / 180 / 2), 2)
                ) 
                ) as result 
    FROM locations order by result asc limit 10
) AS L
于 2013-11-05T10:55:40.283 に答える