如何将字符串数组插入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列的主要内容,如果未能解决你的问题,请参考以下文章

将 JSON 数组视为要插入 MYSQL 的字符串

SyntaxError:JSON.parse:尝试插入 mysql 时 JSON 数据的第 1 行第 1 列出现意外字符

如何将数组值插入现有的 JSON 文档?

如何计算位于 BigQuery 表中的 json 数组中的对象数?

php如何将逗号分隔的多个json格式的字符串作为一个值插入到mysql表中? [复制]

如何在 MySQL 中每列插入数据数组?