Mysql Sql查询在另一个查询中按经度和纬度查找用户位置
我被基本的sql命令卡住了。我在WP usermeta中有一个表。在这个表中,经度和纬度作为meta_键。我需要的是使用两个不同的查询来获取用户id列表 我有一个查询,应该能够找到用户动态距离,每次我叫它的一部分??东西??对我来说是未知的吗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('
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