首页 > 数据库 >Mysql中空间字段类型Wkt和Wkb的坑

Mysql中空间字段类型Wkt和Wkb的坑

时间:2022-08-25 18:25:59浏览次数:61  
标签:Wkb st 报错 Mysql 大佬 Wkt

工作中遇到空间数据,提供给我们的是二进制的Wkt的格式,存储在Mysql数据库中,采集的时候告知我们是Wkb的数据格式,由于第一次接触这样的数据格式,去查了官方文档

https://www.mysqlzh.com/doc/177/148.html

 

 

 试了文档给的几个格式,数据采集的时候却到报错,百度翻译如下

 

 

 无奈,只能改用字符串类型,text又报错数据太长,只能用longtext,数据取回后,要处理转换,将Wkb二进制转换成Wkt的数据格式,通过官方文档给的函数,发现全部报错

 

 

 报错信息翻译如下

 

 

 然后有开始研究Mysql服务器字符串大端小端的区别以及怎么转换,研究半天无果,只能求助大佬,大佬给了一个函数st_astext(st_geometryfromwkb())进行转换,拿出单一条数据测试确实可以,但是整表更新却发现不行,最后发现longtext字段是非二进制的,函数识别不出,于是st_astext(st_geometryfromwkb(UNHEX( @a))); 这样又包了一层测试确实可以,大佬不愧是大佬,然后就是将数据插入到结果表,发现插入不进geometry这个字段,于是将数据又套上一ST_GeomFromText()函数,完美解决,最后贴上各个函数的用法,学到了问题要一步一步的解决,不能盲目没有方向!

 

 

 

 

 

 

 

 

 

标签:Wkb,st,报错,Mysql,大佬,Wkt
From: https://www.cnblogs.com/aitongtong/p/16625285.html

相关文章

  • MySQL搭建主从集群详细步骤~
    一、Docker安装MySQL搭建主从dockerrun[OPTIONS]IMAGE[COMMAND][ARG...]dockerrun-p3306:3306很多-d--namehahamysql:5.7Docker启动容器的数据......
  • Java 连接 MySQL
    让Java和MySQL连接起来-囧雪诺-博客园 https://www.cnblogs.com/jonsnow/p/6246131.htmlJava连接MySQL需要驱动包,可以下载菜鸟教程提供的 jar包:http://stati......
  • Mysql 存储引擎(Innodb & MyIsam)
    SHOWENGINES;#查看mysql上面全部的存储引擎  下面主要讲解Innodb&MyIsam1.数据结构a.Innodb数据,索引,表结构都存在一个.ibd文件里b.MyIsam在磁盘上存储分......
  • 数据篇(MongoDB+ElasticSearch+Minio+TiDB+MySQL+Redis)
    一. 简介1. MongoDB  2. ElasticSearch  3. Minio   4. TiDB  5. MySQL   6. Redis         二. 目录  ......
  • mysql 不可重复读与幻读的区别
    不可重复读的重点是修改:同样的条件,你读取过的数据,再次读取出来发现值不一样了幻读的重点在于新增或者删除同样的条件,第1次和第2次读出来的记录数不一样当然,从......
  • MySQL的InnoDB引擎下执行更新Update语句时 执行时间太久 问题集锦
    场景1:更新cjq表的一个字段,发现执行时间半个小时以上还没执行结束UPDATEt_hplc_cjqSETcjq_type=2WHEREcjq_typeISNULLANDidIN(SELECTcjq_idFROMt_hp......
  • Linux MYSQL安装
    1、安装mysql服务器及客户端sudoapt-getinstallmysql-servermysql-client 2、安装mysqlC语言接口sudoapt-getinstalllibmysql++-dev 3、编译文件(mysql_co......
  • Mysql---函数
    《字符串相关函数》  《数学相关函数》  《时间相关函数》        ......
  • Ubuntu 安装 MySQL 5.7
    一、安装MySQL1. 删除Mysql 数据库sudoaptautoremove--purgemysql-server-*sudoaptremovemysql-serversudoaptautoremovemysql-serversudoaptremovem......
  • 【MySQL】mysqldump从所有数据库备份中还原某个指定的库
    有时候,需要还原某个特定的数据库,但是在备份的时候却又备份了所有的数据库。这时,就可以通过参数--one-database选项来还原指定的数据库。mysql-uroot-p[pwd]--one-data......