Bir JSON belgesinde belirtilen konuma JSON değeri ekler.
Komut biçimi
JSON json_insert(JSON <input>, ARRAY STRING <path>, JSON <value>, BOOLEAN <insert_after>);
Parametreler
input: Zorunludur. Değiştirilecek JSON içeriğidir. Bu parametre JSON ARRAY ve JSON OBJECT veri türlerini destekler.
path: Zorunludur. JSON içeriğinin ekleneceği konumu belirten yoldur.
value: Zorunludur. Eklenecek JSON içeriğidir.
-
insert_after: Zorunludur.
-
Giriş parametresi bir dizi içeriyorsa ve yol mevcut bir öğeyi işaret ediyorsa, bu parametre ekleme konumunu belirler:
true: Yeni değeri belirtilen öğeden sonra ekler.
false (varsayılan): Yeni değeri belirtilen öğeden önce ekler.
m >= n ise değer dizinin sonuna eklenir.
m < -n ise değer dizinin başına eklenir.
-n <= m < n ise yeni değerin konumu insert_after parametresine göre belirlenir.
Giriş parametresi bir dizi değilse değer varsayılan olarak sona eklenir.
Notinputparametresi bir diziyse JSON içeriği eklerken aşağıdaki kurallar geçerlidir. Bu kurallardandizinin uzunluğunu,mise belirtilen ekleme konumunu temsil eder: -
Dönüş değeri
Değiştirilmiş JSON nesnesini döndürür.
Örnekler
-
Örnek 1: Belirtilen bir konuma yeni bir değer ekleyin.
select json_insert(JSON'{"f1":1,"f2":{"t1":1,"t2":2}}', array("f2","t3"), JSON'3', false );Aşağıdaki sonuç döndürülür.
+-----+ | _c0 | +-----+ | {"f1":1,"f2":{"t1":1,"t2":2,"t3":3}} | +-----+ -
Örnek 2: Bir dizideki bir öğeden önce değer ekleyin.
select json_insert(JSON'{"f1":[0,1,2]}', array("f1","0"), JSON'10', false);Aşağıdaki sonuç döndürülür.
+-----+ | _c0 | +-----+ | {"f1":[10,0,1,2]} | +-----+ -
Örnek 3: Bir dizideki bir öğeden sonra değer ekleyin.
select json_insert(JSON'{"f1":[0,1,2]}', array("f1","0"), JSON'10', true);Aşağıdaki sonuç döndürülür.
+-----+ | _c0 | +-----+ | {"f1":[0,10,1,2]} | +-----+ -
Örnek 4: Bir dizinin sonundaki indeksten daha büyük bir indekse değer ekleyin.
select json_insert(JSON'{"f1":[0,1,2]}', array("f1","4"), JSON'4', false);Aşağıdaki sonuç döndürülür.
+-----+ | _c0 | +-----+ | {"f1":[0,1,2,4]} | +-----+ -
Örnek 5: Bir JSON dizisine, dizinin negatif uzunluğundan daha küçük bir indekste değer eklemek, değeri dizinin başına yerleştirir.
select json_insert(JSON'{"f1":[0,1,2]}', array("f1","-4"), JSON'4', false);Aşağıdaki sonuç döndürülür.
+-----+ | _c0 | +-----+ | {"f1":[4,0,1,2]} | +-----+ -
Örnek 6: Konum, dizi uzunluğunun negatifine eşit veya ondan büyük ve dizi uzunluğundan küçükse bir diziye belirtilen konuma değer ekleyebilirsiniz.
select json_insert(JSON'{"f1":[0,1,2]}', array("f1","1"), JSON'10', false);Aşağıdaki sonuç döndürülür.
+-----+ | _c0 | +-----+ | {"f1":[0,10,1,2]} | +-----+