MySQL将json对象附加到json对象数组中

MySQL将json对象附加到json对象数组中,mysql,json,Mysql,Json,在这个表中-foo_表我有一列-foo_id,其内容如下: [{“id”:“432”},{“id”:“433”}] 我的问题是,有没有办法将新的json对象追加到此列? 例如,如果我有这个新对象-{“id”:“554”}我希望我的foo\u id列值变成- [{“id”:“432”},{“id”:“433”},{“id”:“554”}] 如果不存在,我如何插入,如果已经存在,如何追加新的json对象?您可以使用如下函数: mysql>选择版本(); +-----------+ |版本(| +-

在这个表中-
foo_表
我有一列-
foo_id
,其内容如下:
[{“id”:“432”},{“id”:“433”}]

我的问题是,有没有办法将新的json对象追加到此列? 例如,如果我有这个新对象-
{“id”:“554”}
我希望我的
foo\u id
列值变成-
[{“id”:“432”},{“id”:“433”},{“id”:“554”}]

如果不存在,我如何插入,如果已经存在,如何追加新的json对象?

您可以使用如下函数:

mysql>选择版本();
+-----------+
|版本(|
+-----------+
| 5.7.19    |
+-----------+
一行一组(0.00秒)
mysql>如果存在“foo_TABLE”,则删除表;
查询正常,0行受影响(0.00秒)
mysql>创建表(如果不存在)`foo_TABLE`(
->`id`SERIAL,
->`foo_ids`JSON
-> );
查询正常,0行受影响(0.01秒)
mysql>插入到'foo_表'('foo_id`)
->值(空);
查询正常,1行受影响(0.00秒)
mysql>选择'id','foo\u id`
->从'foo_table';
+----+---------+
|id | foo_id|
+----+---------+
|1 |空|
+----+---------+
一行一组(0.00秒)
mysql>更新'foo_表`
->设置'foo_id`=IF(
->'foo_ids'为NULL或
->JSON_类型(`foo_id`)!='ARRAY',
->JSON_数组(),
->“foo_id`
->                   ),
->`foo\u id`=JSON\u数组\u追加(
->‘foo_id’,
->                   '$',
->强制转换(“{”id“:“432”}”为JSON),
->                   '$',
->强制转换(“{”id:“433”}”为JSON)
->                 )
->其中`id`=1;
查询正常,1行受影响(0.00秒)
匹配的行:1已更改:1警告:0
mysql>选择'id','foo\u id`
->从'foo_table';
+----+--------------------------------+
|id | foo_id|
+----+--------------------------------+
|1 |[{“id”:“432”},{“id”:“433”}]|
+----+--------------------------------+
一行一组(0.00秒)
mysql>更新'foo_表`
->设置'foo_id`=IF(
->'foo_ids'为NULL或
->JSON_类型(`foo_id`)!='ARRAY',
->JSON_数组(),
->“foo_id`
->                   ),
->`foo\u id`=JSON\u数组\u追加(
->‘foo_id’,
->                   '$',
->强制转换(“{”id:“554”}”为JSON)
->                 )
->其中`id`=1;
查询正常,1行受影响(0.00秒)
匹配的行:1已更改:1警告:0
mysql>选择'id','foo\u id`
->从'foo_table';
+----+-----------------------------------------------+
|id | foo_id|
+----+-----------------------------------------------+
|1 |[{“id”:“432”},{“id”:“433”},{“id”:“554”}]|
+----+-----------------------------------------------+
一行一组(0.00秒)

更新

也可以在条件上使用运算符:

mysql>UPDATE`foo_表`
->设置'foo_id`=IF(
->JSON_类型(`foo_id`)`ARRAY',
->‘foo_id’,
->JSON_数组()
->                   ),
->`foo\u id`=JSON\u数组\u追加(
->‘foo_id’,
->                   '$',
->强制转换(“{”id:“554”}”为JSON)
->                 )
->其中`id`=1;
查询正常,1行受影响(0.00秒)
匹配的行:1已更改:1警告:0

请参阅。

是否有针对NodeJ的解决方案?