MySQL 几何数据类型上的语法错误或访问冲突



我正在MySQL上使用数据类型几何。我尝试从页面查询。我得到了错误。

如何解决?你能帮忙吗?

此处错误:

"执行时发生异常">

SELECT  t.`road_id`, t.`road_ref_num`, t.`chainage`, t.`road_name`,
ST_AsGeoJSON(ST_Transform(t.`road_wkt`, ?::int)) as geom
FROM  gis_ruralroads_t1 t
WHERE  (t.road_ref_num LIKE ?)
AND  (ST_Transform(ST_SetSRID(ST_MakeBox2D(ST_Point(?, ?),
ST_Point(?, ?)), ?), ST_Srid(t.`road_wkt`)) && t.`road_wkt`
)

带参数 [32648, "%0806T1001%", 5579.905, 1088581.723, 1029359.857, 1650396.77, 32648]

SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;请查看与您的 MariaDB 服务器版本对应的手册,了解在 '::int( 附近使用的正确语法(作为 gis_ruralroads_t1 T Where (t.road_ref_num 如第 1 行的 'x0806T1001%' 的几何">

最好 洛伊

它正指向::int。 MySQL没有任何这样的语法。 只需删除这 5 个字符即可。

通常,您可以相信整数将被正确替换,即使添加了引号:

ST_Transform(t.`road_wkt`, ?)

替换后变成这样:

ST_Transform(t.`road_wkt`, '32648')

撇号不会受伤。

最新更新