MySQL リストの指定した位置に要素を追加する

MySQL リストの指定した位置に要素を追加する

MySQLで、リストの指定した位置に要素を追加する手順を記述してます。

環境

  • OS ubuntu21.10
  • MySQL Ver 8.0.27-0ubuntu0.21.10.1 for Linux on x86_64 ((Ubuntu))
  • MySQL Workbench 8.0.27

手順

リストの指定した位置に要素を追加する場合は、「JSON_ARRAY_INSERT」を使用します。

JSON_ARRAY_INSERT('json','位置','追加するデータ')

実際に、使用してみます。

SELECT 
JSON_ARRAY_INSERT('["a", ["b", "c"]]', '$[0]', "b"),
JSON_ARRAY_INSERT('["a", ["b", "c"]]', '$[1]', "b"),
JSON_ARRAY_INSERT('["a", ["b", "c"]]', '$[2]', "b")

実行結果をみると、追加されていることが確認できます。

ネストして追加する場合は、「 [位置][ 位置 ] 」とします。

SELECT 
JSON_ARRAY_INSERT('["a", ["b", "c"]]', '$[1][0]', "d"),
JSON_ARRAY_INSERT('["a", ["b", "c"]]', '$[1][1]', "d")

実行結果

jsonオブジェクトにも、使用可能です。

SELECT 
JSON_ARRAY_INSERT('{"a": [1,2], "b": 2}', '$.a[0]', 3),
JSON_ARRAY_INSERT('{"a": [1,2], "b": 2}', '$.a[1]', 3)

実行結果