所以我有这个问题:
SELECT
t1.password
FROM Session AS t1
INNER JOIN Locations AS t2 ON
t2.id = t1.location_id AND
SQRT( POWER( CONVERT(t2.longitude,float(10)) - 132.456, 2) +
POWER( CONVERT(t2.latitude,float(10)) - 132.456, 2) ) < 100
WHERE t1.end_distribution = 0 AND t1.end_session = 0
我得到了这个:
1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在'float(10)附近使用正确的语法 - 132.456,2)+ POWER(CONVERT(t2.latitude,float(10)) - 132.456,2(2))'at第13行
答案 0 :(得分:3)
使用
CONVERT(t2.longitude, float(10))
<强>更新强>
根据上面的文档,您无法将表达式转换为float类型,而是使用decimal。
CONVERT(t2.longitude, decimal(10))
答案 1 :(得分:0)
您对CONVERT函数的类型有一个无效的规范。 FLOAT(10)
无效。看起来您最好的选择是使用DECIMAL
。
从MySQL参考手册:http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html
&LT;剪断&GT;
结果的类型可以是以下值之一:
BINARY[(N)]
CHAR[(N)]
DATE
DATETIME
DECIMAL[(M[,D])]
SIGNED [INTEGER]
TIME
UNSIGNED [INTEGER]
&LT; /剪断&GT;