解決MySQL:Invalid GIS data provided to function st_geometryfromtext問(wèn)題
MySQL:Invalid GIS data provided to function st_geometryfromtext
問(wèn)題描述
在MySQL中需要將一個(gè)面狀的WKT字符串轉(zhuǎn)為geometry類(lèi)型的字段存儲(chǔ)在數(shù)據(jù)庫(kù)中,遇到了該錯(cuò)誤
問(wèn)題分析
經(jīng)檢查,是因?yàn)槲业臄?shù)據(jù)存在島洞(環(huán)島)現(xiàn)象,所以出現(xiàn)了該錯(cuò)誤
- 所謂島洞現(xiàn)象:即一塊面狀數(shù)據(jù)成環(huán)狀,中間被挖去一塊,這是真實(shí)存在的一種數(shù)據(jù),只是MySQL可能還不支持
- 表現(xiàn)在WKT中即:“MULTIPOLYGON(((…),(…)))”,一般第一個(gè)描述的是外環(huán)邊界,而第二個(gè)及后面的則描述的是內(nèi)環(huán)即島洞的邊界
注意與"MULTIPOLYGON(((......)),((......)))",多面區(qū)分開(kāi)來(lái)
此外,稍微總結(jié)下,造成該問(wèn)題的原因可能有:
1、面狀WKT字符串本身不完整、缺失內(nèi)容,如在傳輸過(guò)程中超出長(zhǎng)度被截掉了
2、面狀WKT字符串的面要素中首尾點(diǎn)沒(méi)有重合
3、面狀WKT字符串存在島洞現(xiàn)象,或者自相交現(xiàn)象
MySQL遇見(jiàn)contains nonaggregated column 'information_schema.PROFILING.SEQ'異常
報(bào)錯(cuò)如下:
[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
問(wèn)題出現(xiàn)的原因
MySQL 5.7.5及以上功能依賴(lài)檢測(cè)功能。
如果啟用了ONLY_FULL_GROUP_BY SQL模式(默認(rèn)情況下),MySQL將拒絕選擇列表,HAVING條件或ORDER BY列表的查詢(xún)引用在GROUP BY子句中既未命名的非集合列,也不在功能上依賴(lài)于它們。(5.7.5之前,MySQL沒(méi)有檢測(cè)到功能依賴(lài)關(guān)系,默認(rèn)情況下不啟用ONLY_FULL_GROUP_BY。
有關(guān)5.7.5之前的行為的說(shuō)明,請(qǐng)參見(jiàn)“MySQL 5.6參考手冊(cè)”。)
解決方案
select @@global.sql_mode SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); ##當(dāng)前session變量生效 SET global sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); ##全局變量生效
SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); set @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
mysql數(shù)據(jù)庫(kù)修改添加Date格式列的方法
這篇文章主要介紹了關(guān)于mysql數(shù)據(jù)庫(kù)如何修改添加Date格式的列 ,需要的朋友可以參考下2014-07-07
mysql導(dǎo)入sql文件命令和mysql遠(yuǎn)程登陸使用詳解
這篇文章主要介紹了mysql導(dǎo)入sql文件命令和mysql遠(yuǎn)程登陸使用詳解,需要的朋友可以參考下2014-04-04
MySQL查詢(xún)?nèi)哂嗨饕臀词褂眠^(guò)的索引操作
這篇文章主要介紹了MySQL查詢(xún)?nèi)哂嗨饕臀词褂眠^(guò)的索引操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
MySQL配置了雙主,是如何避免出現(xiàn)數(shù)據(jù)回環(huán)沖突的
這篇文章主要介紹了MySQL配置了雙主,是如何避免出現(xiàn)數(shù)據(jù)回環(huán)沖突的,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下2021-01-01
MySQL復(fù)雜查詢(xún)優(yōu)化實(shí)戰(zhàn)之從多表關(guān)聯(lián)到子查詢(xún)的性能突破(全流程)
MySQL復(fù)雜查詢(xún)性能優(yōu)化方法,涵蓋JOIN順序調(diào)整、子查詢(xún)轉(zhuǎn)JOIN、復(fù)合索引設(shè)計(jì)、分批次處理大表關(guān)聯(lián)、統(tǒng)計(jì)信息更新等策略,強(qiáng)調(diào)通過(guò)執(zhí)行計(jì)劃分析定位瓶頸,本文給大家介紹MySQL復(fù)雜查詢(xún)優(yōu)化實(shí)戰(zhàn)之從多表關(guān)聯(lián)到子查詢(xún)的性能突破,感興趣的朋友一起看看吧2025-06-06

