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

如何使用MySQL将表中JSON字段的整数值转换为字符串

解决JSON字段整数值转字符串的MariaDB语法问题

你的原SQL报错主要有两个潜在问题:一是表名table是SQL关键字,未加反引号包裹会触发语法错误;二是直接用CAST转CHAR无法正确生成JSON格式的字符串值,需要用JSON_QUOTE来生成符合JSON规范的带引号字符串。

修正后的SQL语句如下:

UPDATE `table`
SET details = JSON_SET(details, '$."1"', JSON_QUOTE(details->>'$."1"'))
WHERE details->>'$."1"' IS NOT NULL;

关键说明:

  • 表名加反引号:table是SQL保留关键字,必须用反引号``包裹才能正确识别为表名。
  • 用JSON_QUOTE生成JSON字符串:details->>'$."1"'会提取出JSON字段中"1"对应的无引号值(比如123),JSON_QUOTE会自动给这个值加上双引号,转换成符合JSON格式的字符串值("123"),这样JSON_SET就能正确把它设置为JSON字段里的字符串类型值。
  • 简化JSON提取写法:->>是JSON_UNQUOTE(JSON_EXTRACT(...))的简写,语法更简洁,避免嵌套函数的语法混乱。

如果你的MariaDB版本较旧(低于10.2),需要注意:MariaDB从10.2版本开始才支持完整的JSON函数,若版本过低需先升级。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 09:57:03