2013-03-18 94 views
0

以下,前提条件。SQL函数sqrt

表被称为点, 列是 ID start_long start_lat des_lat des_long

Select 
    * 
from 
    point 
WHERE 
    SQRT((71,5x(`start_long`-`des_long`))x(71,5x(`start_long`-`des_long`))+(111,3x(`start_lat`-`des_lat`))x(111,3x(`start_lat`-`des_lat`)))<=10.0 

我收到一个#1241 - 操作数应含有1个柱(一个或多个)错误。哪里不对?

我想很容易得到结果,其中平方根(这是两点之间距离的正确函数)小于10公里。

x代表乘星

感谢

+0

@Fabian ...什么是繁星? – MikeTWebb 2013-03-18 17:20:28

+0

逗号应该是小数点吗? – GilM 2013-03-18 17:26:07

回答

1

你在别人10.0

我怀疑你打算使用期限.您小数,而逗号被解释为独立的参数使用逗号的一些数字71,5和点。

1

你有你的SQRT函数中的逗号,导致您的操作有多个列。

+1

而且显然你不能配置mysql来接受逗号作为小数分隔符http://stackoverflow.com/questions/8669212/change-decimal-separator-in-mysql – jmilloy 2013-03-18 17:27:48

+0

这是简单的答案。 ;-) 谢谢 – 2013-03-18 17:35:49