根据经纬度查询距离并按距离进行排序

转自:https://blog.csdn.net/Gan_1314/article/details/125798360

SELECT
        bm.id,
        bm.merchant_name AS merchantName,
        bm.address,
        bm.signboard_pic AS signboardPic,
        CAST(
        ( st_distance ( point ( lng, lat ), point ( #{lng}, #{lat} ) ) * 111195 ) AS DECIMAL ( 10, 0 )
        ) AS distance,GROUP_CONCAT(bc.card_info) AS cardInfo
        FROM
        base_merchant bm
        LEFT JOIN base_card bc ON bm.id = bc.merchant_id
        WHERE
        bm.STATUS = '1' AND bm.switch_status = '0'
        <if test="merchantName != null  and merchantName != ''"> and bm.merchant_name like concat('%', #{merchantName}, '%')</if>
        <if test="tradeId != null "> and bm.trade_id = #{tradeId}</if>
        GROUP BY bm.id
        ORDER BY
        distance ASC

 

posted on 2022-09-02 16:52  大山008  阅读(226)  评论(0)    收藏  举报