mysql - 在 phpMyAdmin 中导入带有多边形数据的 CSV

标签 mysql csv phpmyadmin geometry polygon

我正在尝试使用 phpMyAdmin 导入 CSV。这是我的 CSV 的样子:

1,1,1,'POLYGON ((879350.00000000012 4542950.0,882236.75134594808 4547950.0,888010.25403784448 4547950.0,890897.00538379245 4542950.0,888010.25403784448 4537950.0,882236.75134594808 4537950.0,879350.00000000012 4542950.0))','POINT (885123.50269189617 4542950.0)'
2,1,2,'POLYGON ((879350.00000000012 4552950.0,882236.75134594808 4557950.0,888010.25403784448 4557950.0,890897.00538379245 4552950.0,888010.25403784448 4547950.0,882236.75134594808 4547950.0,879350.00000000012 4552950.0))','POINT (885123.50269189617 4552950.0)'
3,1,3,'POLYGON ((879350.00000000012 4562950.0,882236.75134594808 4567950.0,888010.25403784448 4567950.0,890897.00538379245 4562950.0,888010.25403784448 4557950.0,882236.75134594808 4557950.0,879350.00000000012 4562950.0))','POINT (885123.50269189617 4562950.0)'

我的列名和类型如下:

CellId      int(11),
Type        int(1),
Name        varchar(255),
Geometry    polygon,
Centroid    point

无论我尝试什么,我似乎总是得到错误

'Invalid column count in CSV input on line 1' or 'Cannot get geometry object from data you send to the GEOMETRY field'

我可以更改 phpMyAdmin 中的 CSV 或导入设置以使其正常工作吗?

最佳答案

您无法轻松导入几何类型。我建议创建临时表

CREATE TABLE IF NOT EXISTS `tmptbl` (
  `a` int(11),
  `b` int(11),
  `c` varchar(255),
  `d` text,
  `e` text   
)

将 csv 导入该表,然后使用将其转换为您的表

INSERT INTO mytable (CellId,Type,Name,Geometry,Centroid)
   SELECT a,b,c,GeomFromText(d),PointFromText(e) FROM tmptbl

关于mysql - 在 phpMyAdmin 中导入带有多边形数据的 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27311062/

相关文章:

PHP显示来自mysql的记录

mysql - 用于比较数据的 SQL 子查询

mysql - 在 ubuntu 12.04 上安装 mysql workbench 时出现依赖错误

excel - 将 .xlsx 转换为 .csv - 找不到 Excel 工作表

mysql - 我不应该立即看到多个插入吗?

php - 登录和注册系统

python - 从函数结果创建 csv 文件,python

python - Python 中的 CSV 在 Windows 上添加额外的回车符

php - 更新mysql和php后无法启动phpmyadmin

phpmyadmin - 为什么 phpmyadmin 不为枚举类型创建值?