首页 > 解决方案 > SQL将JSON插入表列

问题描述

在寻找将数组插入单个 db 列的方法时,我发现了一篇关于插入 JSON 字符串的文章。但是没有解释如何。我试图搜索并找到没有成功的方法。

我有下表:

+---------+----------------+----+
|  Name   |      Type      |    |
+---------+----------------+----+
| id      | int            | AI |
| name    | String         |    |
| address | JSON(longtext) |    |
+---------+----------------+----+

address我想要做的是在列中插入一个 Json数组。喜欢:

+----+-----------+------------------------------------------+
| id |   name    |                 address                  |
+----+-----------+------------------------------------------+
|  1 | User name | [{street: "street address", city: "Berlin"}] |
+----+-----------+------------------------------------------+

我考虑过将 JSON 作为字符串插入,但我不确定这是否是个好主意。有什么建议么?

标签: mysqlsqlarraysjsonsql-insert

解决方案


您可以将数据作为字符串传递,只要它是有效的 JSON;MySQL 会很乐意在后台为您转换它。

insert into mytable (id, name, address)
values (
    1,
    'User name',
    '[{"street": "street address", "city": "Berlin"}]'
);

另一种方法是使用 JSON 构建器函数:

insert into mytable (id, name, address)
values (
    1,
    'User name',
    json_array(json_object('street', 'street address', 'city', 'Berlin'))
);

推荐阅读