咱們有時候在業務中可能有一個這種需求,假如獲取附近某個點位多少米範圍內的建築信息列表,能夠這麼作!!!MYSQL給咱們提供了一個st_distance這個函數,能夠很方便的使用!html
一、表結構(production_base)git
ID | 名稱 | 經度 | 緯度 |
id | name | latitude | longitude |
二、mybatis映射信息mybatis
<!-- 獲取附近多少米的建築物列表 --> <select id="selectNearByProductionList" resultMap="NearByProductionListMap"> select id, name, (st_distance(point(#{lat,jdbcType=DOUBLE},#{lng,jdbcType=DOUBLE}),point(latitude,longitude))*111195) as distance from production_base <where> (st_distance(point(#{lat,jdbcType=DOUBLE},# {lng,jdbcType=DOUBLE}),point(latitude,longitude))*111195) < #{maxDistance,jdbcType=DOUBLE} </where> </select>
其中lat,lng,maxDistance是咱們傳遞進來的數據,篩選離經緯度lat,lng距離maxDistance的數據信息函數