所以这是我的问题:
我有一个数据库表,我有纬度和经度以及时间戳。我需要能够使用PHP搜索此表。查询将在一定范围内找到具有拉特和隆起的行,并且在此基础上,在某个时间范围内。
我发现在浏览互联网时可以使用两个单独的查询,但我找不到明确的方法来组合多个条件。
这两个查询是:
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) *
cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) *
sin( radians( lat ) ) ) ) AS distance
FROM markers
HAVING distance < 25
ORDER BY distance
LIMIT 0 , 20;
在这里输入代码
SELECT * FROM `table` WHERE `date_field` BETWEEN 'date1' AND 'date2'
我需要找到前20个结果,其中时间戳和纬度和长度在范围内。 谢谢!
编辑:所有字段都在同一张表中。
答案 0 :(得分:0)
如果所有数据都在同一个表中,您可以执行以下操作:
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance
FROM markers
WHERE date_field BETWEEN 'date1' AND 'date2'
HAVING distance < 25
ORDER BY distance
LIMIT 0 , 20;