如何将字符串数组插入mysql json列
Posted
技术标签:
【中文标题】如何将字符串数组插入mysql json列【英文标题】:How to insert a string array into mysql json column 【发布时间】:2021-11-29 01:51:55 【问题描述】:我遇到了一个问题。当用JSON类型将一个int数组插入mysql时,我们可以写一个类似INSERT INTO table (json_column) VALUES ('[1,2,3]')
的sql。但是当我想插入一个字符串数组时,我使用了INSERT INTO table (json_column) VALUES ("['item1','item2','item3']")
,我被提示了一个错误:3140 - Invalid JSON text: "Invalid value." at position 1 in value for column 'test.names'.
我该怎么办?
【问题讨论】:
这个工作VALUES ('["item1", "item2", "item3"]')
吗?
转成json插入一列或多列插入
【参考方案1】:
让它更简单
INSERT INTO table (json_column) VALUES ('["item1","item2","item3"]')
或者使用键值对,比如
INSERT INTO table VALUES ('"name": "item1", "id": "item2", "mob": "item3"');
【讨论】:
非常感谢,以上朋友的回答帮助解决了问题【参考方案2】:JSON 文档有特定的格式规则。 JSON 文档中的字符串值必须用双引号而不是单引号分隔。
错误:
"['item1','item2','item3']"
右:
'["item1","item2","item3"]'
这在 SQL 字符串中很有效,因为 SQL 字符串应该用单引号分隔。 MySQL 在支持双引号作为替代字符串分隔符方面是非标准的。
为确保创建格式正确的 JSON 文档,您可能希望使用 JSON_ARRAY() 或 JSON_OBJECT() 函数。您将参数作为单独的值提供,该函数将返回一个文档值,保证被格式化为有效的 JSON。
INSERT INTO table (json_column)
VALUES (JSON_ARRAY('item1', 'item2', 'item3'));
【讨论】:
非常感谢。语句 '["item1","item2"]' 可用以上是关于如何将字符串数组插入mysql json列的主要内容,如果未能解决你的问题,请参考以下文章
SyntaxError:JSON.parse:尝试插入 mysql 时 JSON 数据的第 1 行第 1 列出现意外字符
如何计算位于 BigQuery 表中的 json 数组中的对象数?