mysql里如何使用判断语句?

我当前在数据库里计算距离,并用距离进行排序,当遇到有的商家没有输入经纬度时,就会使距离变的特别大。请问该如何进行判断解决这个问题呢?

代码如下:

SELECT
    substring_index(maps, ",", 1) AS lng,
    substring_index(maps, "," ,- 1) AS lat,
    ROUND(
        6378.138 * 2 * ASIN(
            SQRT(
                POW(
                    SIN(
                        (
                            32.640351 * PI() / 180 - substring_index(maps, ",", - 1) * PI() / 180
                        ) / 2
                    ),
                    2
                ) + COS(32.640351 * PI() / 180) * COS(
                    substring_index(maps, ",", - 1) * PI() / 180
                ) * POW(
                    SIN(
                        (
                            117.013281 * PI() / 180 - substring_index(maps, ",", 1) * PI() / 180
                        ) / 2
                    ),
                    2
                )
            )
        ) * 1000
    ) AS distance
FROM
    list
ORDER BY
    distance ASC

代码如上,如果我使用HAVING distance < 1000000的确可以解决我所描述问题,但问题也出现了,就是该商家不显示了,我的想法是,如何在mysql查询语句里判断maps这个字段,如果为空,就不显示或计算距离,最好能够变成文字提示未知距离。请问该如何实现呢?谢谢!~

慕村9548890
浏览 523回答 4
4回答

DIEA

if(判断,'正确','错误')?case when 距离>0 then '**' when 距离 is null then '无位置' else '未知' end distance?

胡说叔叔

可以尝试下和C语言混编~
打开App,查看更多内容
随时随地看视频慕课网APP