You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL 8.0中Polygon字段获取质心报错3055的解决方法

问题解决:Geometry byte string must be little endian错误

错误原因

你原SQL中多次嵌套ST_AsText和ST_GeomFromText的操作完全多余,且如果coordinates字段存储的是二进制WKB格式的几何数据,这种文本转换会丢失字节序信息,触发"Geometry byte string must be little endian"错误。

解决方案

根据coordinates字段的实际类型,选择以下修正后的SQL:

情况1:coordinates字段本身就是GEOMETRY类型

直接对字段调用ST_Centroid即可:

SELECT ST_Centroid(coordinates)
FROM contract
WHERE address = '0x44145867fA5c74Fa3fC9b7a8d6c495e40c6BB3ED'
LIMIT 1

如果需要将质心结果转为文本格式,可套一层ST_AsText:

SELECT ST_AsText(ST_Centroid(coordinates))
FROM contract
WHERE address = '0x44145867fA5c74Fa3fC9b7a8d6c495e40c6BB3ED'
LIMIT 1

情况2:coordinates字段存储的是WKB二进制数据

需要显式指定小端序解析二进制数据:

SELECT ST_Centroid(ST_GeomFromWKB(coordinates, 'little endian'))
FROM contract
WHERE address = '0x44145867fA5c74Fa3fC9b7a8d6c495e40c6BB3ED'
LIMIT 1

同样,如需文本格式结果:

SELECT ST_AsText(ST_Centroid(ST_GeomFromWKB(coordinates, 'little endian')))
FROM contract
WHERE address = '0x44145867fA5c74Fa3fC9b7a8d6c495e40c6BB3ED'
LIMIT 1

内容的提问来源于stack exchange,提问作者Boris K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 16:12:37