在mysql SELECT查询中组合多个where条件

时间:2013-12-13 22:55:24

标签: mysql select where

所以这是我的问题:

我有一个数据库表,我有纬度和经度以及时间戳。我需要能够使用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个结果,其中时间戳和纬度和长度在范围内。 谢谢!

编辑:所有字段都在同一张表中。

1 个答案:

答案 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;