1

所以我有这个查询:

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) )' 附近使用正确的语法第 13 行

4

2 回答 2

3

利用

CONVERT(t2.longitude, float(10))

MySQL 转换语法

更新

根据上面的文档,您无法将表达式转换为浮点类型,请改用小数。

CONVERT(t2.longitude, decimal(10))
于 2013-01-23T22:19:34.660 回答
0

您对 CONVERT 函数的类型的规范无效。 FLOAT(10)无效。看起来您最好的选择是使用DECIMAL.

来自 MySQL 参考手册:http ://dev.mysql.com/doc/refman/5.5/en/cast-functions.html

<剪辑>

结果的类型可以是以下值之一:

BINARY[(N)]
CHAR[(N)]
DATE
DATETIME
DECIMAL[(M[,D])]
SIGNED [INTEGER]
TIME
UNSIGNED [INTEGER]

</snip>

于 2013-01-23T23:37:37.473 回答