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

如何用MySQL的JSON_SET函数正确设置JSON数组值?

解决MySQL 8中JSON_SET插入数组变为字符串的问题

你当前的问题是因为传入JSON_SET的数组是字符串字面量,MySQL会将其作为普通字符串存储,而非解析为JSON数组类型。下面提供两种可行的解决方法:

方法一:用JSON_ARRAY()构造JSON数组

直接使用MySQL内置的JSON_ARRAY()函数生成合法的JSON数组,传入JSON_SET即可:

UPDATE tasks 
SET outputFields = JSON_SET(outputFields, '$.checkbox', JSON_ARRAY('Chien', 'Chat')) 
WHERE id = 6832;

方法二:将字符串转换为JSON类型

如果你的数组是以字符串形式存在(比如来自变量或外部输入),可以用CAST()函数将字符串强制转换为JSON类型:

UPDATE tasks 
SET outputFields = JSON_SET(outputFields, '$.checkbox', CAST('["Chien","Chat"]' AS JSON)) 
WHERE id = 6832;

执行上述任意一种语句后,outputFields中的checkbox字段就会变成预期的JSON数组格式:

{"key1": "value1", "key2": "value2", "key3": "value3", "checkbox": ["Chien","Chat"]}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 20:35:26