Mysql Sql查询在另一个查询中按经度和纬度查找用户位置

Mysql Sql查询在另一个查询中按经度和纬度查找用户位置,mysql,sql,location,pivot,Mysql,Sql,Location,Pivot,我被基本的sql命令卡住了。我在WP usermeta中有一个表。在这个表中,经度和纬度作为meta_键。我需要的是使用两个不同的查询来获取用户id列表 我有一个查询,应该能够找到用户动态距离,每次我叫它的一部分??东西??对我来说是未知的吗 SELECT *, (3959 * acos(cos(radians('LAT VAL')) * cos(radians(latitude)) * cos( radians(longtitude) - radians('

我被基本的sql命令卡住了。我在WP usermeta中有一个表。在这个表中,经度和纬度作为meta_键。我需要的是使用两个不同的查询来获取用户id列表

我有一个查询,应该能够找到用户动态距离,每次我叫它的一部分??东西??对我来说是未知的吗

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 *, 
       (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”是您要查找用户的点的坐标

我在中尝试了类似的方法。谢谢,我做了一些更改,现在可以使用了:
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