考虑这个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'将给我零结果。
我想我需要做某种子查询,但不知道如何做到这一点。
有人吗?
看看[这个问题](HTTP:///stackoverflow.com/questions/16249731/mysql-select-query-with-multiple-conditions)。此外,你没有得到完全的“半径内的标记”,你需要进一步使用[Haversine公式](http://en.wikipedia.org/wiki/Haversine_formula)或类似的过滤结果。 – DCoder 2013-05-11 11:31:31