Ce face JSON_MERGE_PRESERVE()
JSON_MERGE_PRESERVE() nu pierde nimic: când aceeași cheie apare în ambele documente, valorile sunt puse împreună într-o listă, iar listele sunt concatenate.
JSON_MERGE() este numele vechi al aceleiași funcții. Este depreciat și afișează un avertisment; folosește numele nou.
Parametri
| Parametru | Descriere |
|---|---|
document1, document2, ... |
Documentele unite. |
Ce returnează
Documentul unit.
Exemple
Exemplul 1: Chei duplicate și liste
SELECT JSON_MERGE_PRESERVE('{"a": 1, "b": 2}', '{"b": 3}') AS obiecte,
JSON_MERGE_PRESERVE('[1, 2]', '[2, 3]') AS liste;
Rezultat
+-----------------------+--------------+
| obiecte | liste |
+-----------------------+--------------+
| {"a": 1, "b": [2, 3]} | [1, 2, 2, 3] |
+-----------------------+--------------+
Exemplul 2: Numele vechi, depreciat
SELECT JSON_MERGE('[1]', '[2]') AS vechi;
Rezultat
+--------+
| vechi |
+--------+
| [1, 2] |
+--------+
Warning (Code 1287): 'JSON_MERGE' is deprecated and will be removed in a future release. Please use JSON_MERGE_PRESERVE/JSON_MERGE_PATCH instead
Greșeli frecvente
- Folosești
JSON_MERGE_PRESERVE()pentru setări și te trezești cu"tema": ["light", "dark"]. Pentru suprascriere foloseșteJSON_MERGE_PATCH().
Comenzi înrudite
JSON_MERGE_PATCH(): Unește documente JSON după RFC 7396: valorile din documentul următor le înlocuiesc pe cele vechi.JSON_ARRAY_APPEND(): Adaugă o valoare la sfârșitul unei liste JSON.