【发布时间】:2013-05-05 23:33:43
【问题描述】:
考虑这个 SQL 查询:
SELECT * FROM
(
SELECT * FROM wp_postmeta
WHERE
(
meta_key = 'latitude' AND meta_value *1 BETWEEN 47.3641471102 AND 47.3731524898)
OR (meta_key = 'longitude' AND meta_value *1 BETWEEN 8.53253429117 AND 8.54583070883)
)
AS PostMeta, wp_posts
WHERE wp_posts.id = PostMeta.post_id order by post_id asc
它为我提供了与某些值之间的纬度或某些值之间的经度匹配的所有记录。我想要得到的是匹配这两个值的记录。 但是将查询中的 'OR' 更改为 'AND' 会给我零结果。
我想我需要做一个子查询,但不知道该怎么做。
有人吗?
【问题讨论】:
-
看this question。此外,您没有得到确切的“半径内的标记”,您需要使用 Haversine formula 或类似名称进一步过滤结果。