是的,我知道这个问题已经问了一千遍了。但是我无法终生弄清楚为什么这个查询无法正常工作。
此查询采用输入的纬度和经度,并选择数据库中最接近的25座建筑物。这是代码:
set @lat = 37.422003;
set @lng = -122.084059;
drop table if exists `test`.`results`;
create table `test`.`results` (address varchar(255), city varchar(100), state char(2), zip char(5), lat decimal(15,10), lng decimal(15,10), distance decimal(6,2));
insert into `test`.`results` select address, city, state, zip, lat, lng, ( 3959 * acos( cos( radians( @lat ) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians( @lng ) ) + sin( radians( @lat ) ) * sin( radians( lat ) ) ) ) as distance from `test`.`buildings` having distance < 25 limit 0, 25;
运行上述语句时,出现MySQL错误1292(我处于严格模式)。 select语句中的所有列都与create语句中的列完全相同。问题似乎出在距离计算上,但我没有发现任何不正确的地方。
非常感谢您的帮助!