MYSQL - 将新数组元素追加到 JSON 列

MYSQL - append new array elements to JSON column

我有一个 table 和 json 列,默认为空数组 [].

旧table

id myJson
A1 [1, 2]
A12 []

我希望 table 更新到下面。

id myJson
A1 [1, 2, 321, 432]
A12 [222]

尝试过 - INSERT INTO table (id, myJson) VALUES ("A1", "[321, 432]"), ("A12", "[222]") ON DUPLICATE KEY UPDATE myJson = JSON_ARRAY_APPEND(myJson, "$", myJson)

到目前为止,以上查询和其他尝试未产生理想的结果。

我可以使用什么查询将新数组附加到旧数组,如 table 所示?

您使用的 MySQL 是什么版本?

一种选择是使用 JSON_MERGE_PRESERVE or JSON_MERGE_PATCH(根据需要):

INSERT INTO `table` (`id`, `myJson`)
VALUES ('A1', '[321, 432]'), ('A12', '[222]') AS `new`
  ON DUPLICATE KEY UPDATE
    `table`.`myJson` = JSON_MERGE_PRESERVE(`table`.`myJson`, `new`.`myJson`);

dbfiddle