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構文にエラーがあります。'float(10))-132.456、2)+ POWER(CONVERT(t2.latitude、float(10))-132.456、2))'の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。 13行目

4

2 に答える 2

3

使用する

CONVERT(t2.longitude, float(10))

MySQL変換構文

アップデート

上記のドキュメントによっては、式を浮動小数点型に変換できません。代わりに10進数を使用してください。

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

<snip>

結果のタイプは、次のいずれかの値になります。

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

</ snip>

于 2013-01-23T23:37:37.473 に答える