SQL 将 JSON 插入 table 列
SQL Insert JSON into table column
在寻找将数组插入单个数据库列的方法时,我找到了一篇关于插入 JSON 字符串的文章。但是没有解释如何。我试图搜索并找到方法,但没有成功。
我有以下table:
+---------+----------------+----+
| Name | Type | |
+---------+----------------+----+
| id | int | AI |
| name | String | |
| address | JSON(longtext) | |
+---------+----------------+----+
我想做的是在 address
列中插入一个 Json 数组。喜欢:
+----+-----------+------------------------------------------+
| id | name | address |
+----+-----------+------------------------------------------+
| 1 | User name | [{street: "street address", city: "Berlin"}] |
+----+-----------+------------------------------------------+
我考虑过将 JSON 作为字符串插入,但我不确定这是否是个好主意。有什么建议吗?
您可以将数据作为字符串传递,只要它有效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'))
);
CREATE TABLE people (id INT, name VARCHAR(255), address JSON);
INSERT INTO people (id, name, address)
VALUES (1, 'User name', '[{"street": "street address", "city": "Berlin"}]');
SELECT *
FROM people;
id
name
address
1
User name
[{"city": "Berlin", "street": "street address"}]
db<>fiddle here
如果 MySQL
中已有数据类型 JSON,为什么要转换为字符串
INSERT INTO <Table_Name> VALUES ('{street: "street address", city: "Berlin"}');
此插入语句将直接插入您的数组。无需转换。
看到这个
在寻找将数组插入单个数据库列的方法时,我找到了一篇关于插入 JSON 字符串的文章。但是没有解释如何。我试图搜索并找到方法,但没有成功。
我有以下table:
+---------+----------------+----+
| Name | Type | |
+---------+----------------+----+
| id | int | AI |
| name | String | |
| address | JSON(longtext) | |
+---------+----------------+----+
我想做的是在 address
列中插入一个 Json 数组。喜欢:
+----+-----------+------------------------------------------+
| id | name | address |
+----+-----------+------------------------------------------+
| 1 | User name | [{street: "street address", city: "Berlin"}] |
+----+-----------+------------------------------------------+
我考虑过将 JSON 作为字符串插入,但我不确定这是否是个好主意。有什么建议吗?
您可以将数据作为字符串传递,只要它有效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'))
);
CREATE TABLE people (id INT, name VARCHAR(255), address JSON); INSERT INTO people (id, name, address) VALUES (1, 'User name', '[{"street": "street address", "city": "Berlin"}]'); SELECT * FROM people;
id | name | address |
---|---|---|
1 | User name | [{"city": "Berlin", "street": "street address"}] |
db<>fiddle here
如果 MySQL
中已有数据类型 JSON,为什么要转换为字符串INSERT INTO <Table_Name> VALUES ('{street: "street address", city: "Berlin"}');
此插入语句将直接插入您的数组。无需转换。
看到这个