我遇到了一个问题。当用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'.
我该怎么办?
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)
| 归档时间: |
|
| 查看次数: |
5602 次 |
| 最近记录: |