JSON_MERGE_PATCH() în MySQL

JSON: modificare MySQL 8.0.3+ (5.7.22+)

Unește documente JSON după RFC 7396: valorile din documentul următor le înlocuiesc pe cele vechi.

Sintaxă
JSON_MERGE_PATCH(document1, document2[, ...])

Ce face JSON_MERGE_PATCH()

JSON_MERGE_PATCH() se comportă ca o actualizare: cheile din al doilea document suprascriu cheile cu același nume din primul. O cheie cu valoarea null în al doilea document este ștearsă.

Este alegerea potrivită pentru setări: pornești de la valorile implicite și aplici preferințele utilizatorului.

Parametri

Parametru Descriere
document1, document2, ... Documentele unite, în ordine.

Ce returnează

Documentul unit.

Exemple

Exemplul 1: Setări implicite suprascrise

SELECT JSON_MERGE_PATCH(
  '{"tema": "light", "limba": "ro", "notificari": true}',
  '{"tema": "dark", "notificari": null}'
) AS setari;

Rezultat

+---------------------------------+
| setari                          |
+---------------------------------+
| {"tema": "dark", "limba": "ro"} |
+---------------------------------+

Greșeli frecvente

  • Te aștepți ca listele să fie unite. JSON_MERGE_PATCH() înlocuiește lista întreagă; pentru unire folosește JSON_MERGE_PRESERVE().

Comenzi înrudite

  • JSON_MERGE_PRESERVE(): Unește documente JSON păstrând toate valorile: cheile duplicate devin liste.
  • JSON_SET(): Setează valori în JSON: le înlocuiește dacă există și le adaugă dacă lipsesc.