如何将字符串数组插入mysql json列

Hob*_*obo 2 c# mysql sql

我遇到了一个问题。当用JSON类型将int数组插入Mysql时,我们可以编写类似的sql INSERT INTO table (json_column) VALUES ('[1,2,3]')。但是当我想插入字符串数组时,我使用INSERT INTO table (json_column) VALUES ("['item1','item2','item3']"),提示错误:3140 - Invalid JSON text: "Invalid value." at position 1 in value for column 'test.names'. 我该怎么办?

Bil*_*win 6

JSON 文档有特定的格式规则。JSON 文档中的字符串值必须用双引号而不是单引号分隔。

错误的:

"['item1','item2','item3']"
Run Code Online (Sandbox Code Playgroud)

正确的:

'["item1","item2","item3"]'
Run Code Online (Sandbox Code Playgroud)

这在 SQL 字符串中效果很好,因为 SQL 字符串应该用单引号分隔。MySQL 在支持双引号作为替代字符串分隔符方面是非标准的。

为了确保创建格式正确的 JSON 文档,您可能需要使用JSON_ARRAY()JSON_OBJECT()函数。您将参数作为单独的值提供,该函数将返回一个文档值,并保证格式为有效的 JSON。

INSERT INTO table (json_column) 
VALUES (JSON_ARRAY('item1', 'item2', 'item3'));
Run Code Online (Sandbox Code Playgroud)