You need to enable JavaScript to run this app. MariaDB中使用->操作符从JSON列提取键值报1064语法错误
优惠活动
大模型
产品
解决方案
定价
更多

MariaDB中使用->操作符从JSON列提取键值报1064语法错误

#1064语法错误排查
  • 报错的核心原因是你当前连接的MariaDB服务端版本不支持->这个JSON快捷提取操作符:->是MySQL 5.7.9版本新增的语法简写,MariaDB直到10.2.7版本才做了兼容适配,低版本的SQL解析器识别到->标记时会直接判定为非法语法,因此报错位置会精准定位到这段带->的语句段。
  • 你当前使用的mysqlnd客户端是2015年发布的5.0.12-dev版本,搭配phpMyAdmin 5.0.2连接的数据库服务端版本,远低于支持->操作符的最低阈值,直接执行简写语句必然触发解析错误。
实现JSON键值提取的兼容方案

不要依赖对版本要求高的->简写,直接使用全版本兼容的原生JSON函数完成提取,两种场景的写法如下:

  • 基础值提取:返回带JSON字符串格式标记的结果,比如对应示例数据会返回"antonio":
    SELECT JSON_EXTRACT(tops, '$.title') AS tops FROM arts;
    
  • 纯文本值提取:去掉结果外层的JSON双引号,直接返回实际文本内容antonio,和->操作符的输出效果完全一致:
    SELECT JSON_UNQUOTE(JSON_EXTRACT(tops, '$.title')) AS tops FROM arts;
    
  • 适配提示:如果后续升级数据库到MariaDB 10.2.7及以上版本,才可以换回SELECT tops->'$.title' AS tops FROM arts;的简写写法,当前低版本环境下使用上述函数写法的通用性最强,哪怕存储JSON的列是普通文本类型的合法JSON,只要服务端支持JSON_EXTRACT函数就能正常运行,不会触发语法解析错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.03 23:24:02