mysql查询在使用存储值和实际数进行计算时返回不同的结果
所以我做了很多研究,似乎找不到有同样问题的人。 我使用查询查找与此文档最近的目的地: 当我在做本地测试时,它起了作用。然而,当我切换到AWS RDS时,计算结果非常错误 归根结底是这样的: 当我在本地主机mysql上使用存储值进行查询时,它返回的结果与使用实际值进行查询时不同 (我的表中只有一行,经度值为-177.744302。) 所以当我这么做的时候:mysql查询在使用存储值和实际数进行计算时返回不同的结果,mysql,sql,command-line,phpmyadmin,local,Mysql,Sql,Command Line,Phpmyadmin,Local,所以我做了很多研究,似乎找不到有同样问题的人。 我使用查询查找与此文档最近的目的地: 当我在做本地测试时,它起了作用。然而,当我切换到AWS RDS时,计算结果非常错误 归根结底是这样的: 当我在本地主机mysql上使用存储值进行查询时,它返回的结果与使用实际值进行查询时不同 (我的表中只有一行,经度值为-177.744302。) 所以当我这么做的时候: SELECT (longitude * pi() / 180) AS temp FROM table1; 我会得到-2.055025753
SELECT (longitude * pi() / 180) AS temp
FROM table1;
我会得到-2.055025753625447
但当我使用:
SELECT (-177.744302 * pi() / 180) AS temp
FROM table1;
我会得到-3.1022232966
我不知道为什么会发生这种情况,我似乎也不知道为什么。这只有在本地主机mysql上进行时才会发生。当我在AWS RDS上使用它时,两个查询的结果都是-3.102223966
。从数学上讲,-3.102223966
是正确的答案,但是-2.05502574
是我需要计算正确距离的答案。所以这对我来说是非常讽刺和困惑的
AWS RDS的mysql版本为5.6.13,localhost的mysql版本为5.6.14,但我不认为这是原因。但这完全没有意义。如果有人遇到过类似的问题,请帮助我 表中的值是-117.744302,而不是-177.744302,非-177.744,看起来像是打字错误伙计们,我很抱歉,这是个愚蠢的错误。我想我已经看了5个多小时了,因为我正试图从本地迁移到RDS。这是我数据中的一个输入错误,这就是为什么本地和rds的结果不同。谢谢你抽出时间。