如何修正#1366 - 错误的字符串值:"xE6x10x00x01x01...

问题描述 投票:0回答:1

我想把一个有postgresql数据库的GIS应用转换为mysql 8,我已经把很多查询转换为sql查询了。像一个geom的地方,等等。N我需要输入数据的地方到mysql 8。所以,我已经尝试手动方法输入geom,与纬度长在phpmyadmin。

但我第一次执行查询时。

INSERT INTO `restaurant`(`name`, `address`, `open`, `close`, `price`, `description`, `geom`, `id`) VALUES ('Ajo Paris', 'Jl. S. Parman No.126','' ,'' ,'15000' ,'' , ST_GeomFromText('POINT(100.3481273 -0.9175653)', 4326 ), 'R0001');

但第一次执行查询时,就出现了错误。

3617 - 在函数st_geomfromtext中,纬度100.348127超出范围。它必须在[-90.000000, 90.000000]范围内。

我认为它的经纬度位置不对,所以我把它反过来了。

INSERT INTO `restaurant`(`name`, `address`, `open`, `close`, `price`, `description`, `geom`, `id`) VALUES ('Ajo Paris', 'Jl. S. Parman No.126','' ,'' ,'15000' ,'' , ST_GeomFromText('POINT(-0.9175653 100.3481273)', 4326 ), 'R0001');

但它仍然是错误的

1366 - 第1行 "geom "栏的字符串值不正确:"xE6x10x00x00x01x01...

这可能与列的整理有关吗?列的整理是utf8_general_ci。

如果没有关系,那可能是什么问题呢,我应该怎么解决呢?

mysql gis mysql-8.0
1个回答
0
投票

我想你是想插入 GEOMETRY 类型的值到一列类型的值 TEXTCHAR.

这并没有多大意义,即使工作。几何图形不是以你输入的文本形式存储的,它被转换为内部二进制表示,应该存储在 GEOMETRY 类型化的列。否则你将无法对其做太多的处理。

将列定义为 geom GEOMETRY SRID 4326.

© www.soinside.com 2019 - 2024. All rights reserved.