2

stackoverflow を検索していて、質問に対する回答を得ましたが、自分のコードでそれを実装しようとすると、奇妙なエラーが発生しました。

コードは次のとおりです。

SELECT `zip_code`, (6371 * acos(cos(radians($latitude)) * cos(radians(`lat`)) * cos(radians(`long`) - radians($longitude)) + sin(radians($latitude)) * sin(radians(`lat`)))) AS `distance`
FROM `places`
HAVING `distance` < $within
ORDER BY `distance` ASC
LIMIT 10;

次のエラーが表示されます。

Incorrect parameter count in the call to native function 'radians'

MySQL バージョン 5.1.44 を使用しています

4

1 に答える 1

3

私が見つけたリンクから、これは通常、度数の値の小数部分から整数を区切るカンマを使用して度数の引数をラジアン関数に渡すことによって引き起こされます。

経度53,779度 緯度4,566度

これは、radians 関数に対する 2 つの引数 (コンマで区切られた) のように見え、表示されるエラーをスローします。

解決策は、カンマではなくピリオドを区切り文字として使用して度引数をフォーマットするために、その場で変更を行うことです。

于 2011-12-25T19:28:34.237 に答える