在寻找插入数组到单个数据库列的方法时,我发现了一篇关于插入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作为字符串插入,但我不确定这是否是个好主意。有什么建议吗?
5条答案
按热度按时间k3bvogb11#
可以将数据作为字符串传递,只要它是有效的JSON; MySQL将很乐意在引擎盖下为您转换它。
另一种方法是使用JSON构建器函数:
ssm49v7z2#
| 标识符|姓名|位址|
| - -|- -|- -|
| 一个|使用者名称|[{“城市”:“柏林”,“街道”:“街道地址”}]|
小提琴
ufj5ltwl3#
如果MySQL中已经有JSON数据类型,为什么要转换为String
此插入语句将直接插入您的数组。不需要转换。
见此stackoverflow answer
egdjgwm84#
@GMB的替代答案看起来是正确的,但我想我会添加另一个答案,以显示我如何以我喜欢的格式实现这一点:
我喜欢在字段值旁边列出字段名称,这样就不必在心里将值Map到变量。
此外,我不需要json_object,因为我没有输入key:value对-我只是输入一个值列表。
yzckvree5#
这在我的例子中是有效的。总之使用
ARRAY[CAST('{"key": "val"}' as json)]
。示例: