空间距离排序导致的异常
作者:互联网
MySQL版本:5.7.30
简介:
今天有同学反馈获取某个用户的附近的人数据时没有数据返回,这明显不正常,接下来为排查过程。
获取附近的人的语句如下:
SELECT
FLOOR(st_distance_sphere((select location from t_user_location where user_id = 1234), location)) distance,b.*
FROM t_family b
left join `t_family_location` a
on a.family_id = b.id
where st_distance_sphere((select location from t_user_location where user_id = 1234), location) < 81843200000
AND b.public=1
ORDER BY distance asc,b.id
排查过程如下:
1. 排除了没有数据的可能性;
2. 去掉order by,有结果返回;
3. 去掉order by distance,对其它字段进行排序,也有结果返回;
问题:
为何这里对 order by distance 进行排序会导致没有结果返回呢?
查看warnings输出
> show warnings;
1210 Incorrect arg
标签:distance,family,where,距离,location,排序,异常,id,user 来源: https://blog.csdn.net/csdntestuser1/article/details/123616473