11

DBに自分の国の地理的な場所を入力しようとしています。私のテーブルの1つには、ID [PK]、緯度の4つのフィールドがあります。経度andegeoPoint

EDIT `SCDBs`.`Punto_Geografico`;

SET @lat = 18.469692;

SET @lon = -63.93212;

SET @g = 'POINT(@lat @lon)';

UPDATE Punto_Geografico SET latitude = @lat, longitude =@lon, geoPoint =@g WHERE idpunto_geografico = 0;

次のエラーが発生します:エラーコード:1416GEOMETRYフィールドに送信したデータからジオメトリオブジェクトを取得できません

'geoPoint'フィールドは空間インデックスを持つPOINTフィールドであると確信しています。私は何かが足りないのですか。14

4

2 に答える 2

13

次の構文を使用する必要があります。

UPDATE ... SET latitude=18, longitute=-63, geoPoint=GeomFromText('POINT(18 -63)') WHERE ...
于 2012-04-11T08:54:48.047 に答える
11

サーバーの値に値を割り当てずに実行してみてください。特に関数呼び出しが含まれている場合。MySQLは変数の内容をプレーンテキストとして扱い、そこに関数呼び出しがあることを認識しません。

UPDATE ... SET latitude=18, longitute=-63, geoPoint=POINT(18 -63) WHERE ...
于 2011-03-13T23:00:30.693 に答える