gpt4 book ai didi

mysql - sql查询在另一个查询中按经纬度查找用户位置

转载 作者:行者123 更新时间:2023-11-28 23:17:43 24 4
gpt4 key购买 nike

我坚持使用“基本”sql 命令。我在 WP ( usermeta ) 中有一张表。在此表中,我将longitudelatitude 作为meta_key。我需要的是使用两个不同的查询来获取 user_id 的列表。

我有一个查询,每次调用它时都应该能够找到具有动态距离的用户(那部分“??SOMETHING??”对我来说是未知的)

SELECT *, 
(3959 * acos(cos(radians('LAT VAL')) * cos(radians(latitude))
* cos( radians(longtitude) - radians('LNG VAL')) + sin(radians('LAT VAL'))
* sin(radians(latitude)))) AS distance
FROM ??SOMETHING??
HAVING distance < 15
ORDER BY distance
LIMIT 0 , 10

然后我有这个查询(真的有效)

SELECT user_id, 
MAX(IF(meta_key = 'latitude', meta_value, NULL)) AS latitude,
MAX(IF(meta_key = 'longitude', meta_value, NULL)) AS longitude
FROM usermeta
GROUP BY user_id;

我现在已经做了好几个小时了,我一个人无法弄清楚。我觉得我很接近。

如果有人能帮助我,我将不胜感激。

最佳答案

只需更换 ??something??使用您的查询:

SELECT *, 
(3959 * acos(cos(radians('LAT VAL')) * cos(radians(latitude))
* cos( radians(longtitude) - radians('LNG VAL')) + sin(radians('LAT VAL'))
* sin(radians(latitude)))) AS distance
FROM
(
SELECT user_id,
MAX(IF(meta_key = 'latitude', meta_value, NULL)) AS latitude,
MAX(IF(meta_key = 'longitude', meta_value, NULL)) AS longitude
FROM usermeta
GROUP BY user_id
) a
HAVING distance < 15
ORDER BY distance
LIMIT 0 , 10

请注意,在上面的查询中,'LAT VAL''LNG VAL' 是您要查找用户的点的坐标

关于mysql - sql查询在另一个查询中按经纬度查找用户位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43131287/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com