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

如何在MySQL JSON查询中使用变量?语法错误问题求解

MySQL JSON查询中使用变量的正确方案

问题根源

MySQL的JSON路径表达式(如->运算符后的字符串)是静态解析的,无法直接在路径中嵌入会话变量@rownum,直接引用会触发语法错误。

解决方法

方法1:通过字符串拼接生成动态JSON路径

利用CONCAT函数将变量嵌入JSON路径字符串,再通过JSON_EXTRACT函数执行查询:

SET @rownum = 1;
SELECT JSON_EXTRACT(attributes, CONCAT('$.analyzeResult.documents[0].fields[0].Items.valueArray[', @rownum, '].valueObject.ProductCode.valueString')) FROM `table`;

如果需要提前定义路径变量,也可以拆分步骤:

SET @rownum = 1;
SET @json_path = CONCAT('$.analyzeResult.documents[0].fields[0].Items.valueArray[', @rownum, '].valueObject.ProductCode.valueString');
SELECT JSON_EXTRACT(attributes, @json_path) FROM `table`;

方法2:同时去除结果的引号(可选)

如果需要获取不带双引号的纯文本结果,可搭配JSON_UNQUOTE函数:

SET @rownum = 1;
SELECT JSON_UNQUOTE(JSON_EXTRACT(attributes, CONCAT('$.analyzeResult.documents[0].fields[0].Items.valueArray[', @rownum, '].valueObject.ProductCode.valueString'))) FROM `table`;

注意:table是MySQL关键字,查询时需用反引号`包裹,避免语法冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 17:42:14