MySQLの空間座標データ(GEOMETRYフィールド)の読み書き

3824 ワード

元のデータ/データベースに表示するデータ:
ID
CITY
DISTRICT
NAME
COORDINATE_gcj02
494165
成都市
成華区
成渝立交地下鉄駅C口
POINT(104.147775 30.625014)
ここでCOORDINATE_gcj02フィールドは空間座標フィールドpointに属する
挿入
誤った挿入文
insert into database.metro_info
(CITY,DISTRICT,NAME,COORDINATE_gcj02)
values
("   ","   ","       C ","POINT(104.147775 30.625014)")

エラー:
1416 - Cannot get geometry object from data you send to the GEOMETRY field

POINTデータにPOINTFROMEXT or GeomFromTextを加える
ただし、Pythonを使用してMySQL文を操作すると、ヒント:
Warning: (1287, "'POINTFROMTEXT' is deprecated and will be removed in a future release. Please use ST_POINTFROMTEXT instead")

警告:POINTFROMEXT and GeomFromTextメソッドが削除されます.ST_を使用することを推奨します.POINTFROMTEXT or ST_GeomFromText
正しい挿入文
insert into database.metro_info
(CITY,DISTRICT,NAME,COORDINATE_gcj02)
values
("   ","   ","       C ",ST_POINTFROMTEXT("POINT(104.147775 30.625014)"))

検索
MySQLで直接検索して問題ありません
select ID, city, ST_ASTEXT(COORDINATE_gcj02)
from metro_info

でも
Pythonで検索すると、POINTデータにバイナリが表示され、MySQLでの検索効果を達成したい
POINTデータにST_を付けるASTEXT
正しいクエリ文
select ID, city, ST_ASTEXT(COORDINATE_gcj02)
from metro_info