MySQL JSON_EXTRACT() Function
Die Funktion `JSON_EXTRACT()` in MySQL wird verwendet, um Daten aus JSON-Dokumenten zu extrahieren. Sie ermöglicht es dir, bestimmte Werte aus JSON-kodierten Daten in deiner Datenbank abzurufen.
Verwendung
JSON_EXTRACT() wird häufig verwendet, wenn du auf bestimmte Daten in einem JSON-Objekt oder -Array zugreifen oder sie manipulieren musst. Sie gibt einen Pfad zu den gewünschten Daten an, die ein einzelner Wert oder eine Reihe von Werten sein können.
JSON_EXTRACT(json_doc, path)
In dieser Syntax steht `json_doc` für die JSON-Daten und `path` gibt die Position des gewünschten Wertes innerhalb des JSON-Dokuments an. Pfade können sowohl die Punktschreibweise für verschachtelte Elemente als auch die Klammerschreibweise für Arrays verwenden. Das "$"-Symbol steht für die Wurzel des JSON-Dokuments.
Hinweis: Die Funktion `JSON_EXTRACT()` ist ab MySQL 5.7 verfügbar.
Beispiele
1. Grundlegende Extraktion
SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name');
Dieses Beispiel extrahiert den Wert "John" aus dem JSON-String und greift dabei auf den Schlüssel "Name" zu.
2. Verschachtelte JSON-Extraktion
SELECT JSON_EXTRACT('{"user": {"name": "Jane", "age": 25}}', '$.user.age');
Hier holt die Funktion den Alterswert "25" aus einem verschachtelten JSON-Objekt unter dem Schlüssel "user".
3. Extrahieren aus einem JSON-Array
SELECT JSON_EXTRACT('[10, 20, 30, {"key": "value"}]', '$[3].key');
Die Funktion extrahiert den Wert "value" aus einem JSON-Array-Element bei Index 3, das ein JSON-Objekt mit einem "key" ist.
Tipps und bewährte Praktiken
- Verwende gültiges JSON. Stelle sicher, dass das JSON-Dokument richtig formatiert und gültig ist, um Fehler zu vermeiden.
- Leverage-Indizes. Erwäge die Indizierung von JSON-Spalten, um die Abfrageleistung zu verbessern.
- Kenntnis der Pfadsyntax. Sei mit der JSON-Pfadsyntax vertraut und verwende "$" als Wurzel und die Punktnotation für verschachtelte Elemente. Auf Arrays kann auch mit der Klammerschreibweise zugegriffen werden.
- Behandle Nullen. Die Funktion gibt `NULL` zurück, wenn der angegebene Pfad im JSON-Dokument nicht vorhanden ist.
- Optimiere die Lagerung. Verwende JSON-Spalten anstelle von großen Textfeldern, um die Effizienz zu steigern und Abfragen zu optimieren.
- Kombiniere Funktionen. Erwäge, `JSON_EXTRACT()` mit anderen SQL-Funktionen zu kombinieren, um komplexe Datenstrukturen zu manipulieren und abzurufen.