Heim >Datenbank >MySQL-Tutorial >Wie frage ich den Stärkewert eines „Ritters' aus einem verschachtelten JSON-Array in MySQL ab?
Abfragen eines verschachtelten JSON-Arrays nach Schlüssel
In MySQL können Sie mithilfe einer Kombination von JSON_TABLE bestimmte Werte aus einem verschachtelten JSON-Array abrufen ()-Funktion und eine WHERE-Klausel.
Betrachten Sie das folgende JSON-Array:
<code class="json">[ {"Race": "Orc", "strength": 14}, {"Race": "Knight", "strength": 7} ]</code>
Um die Stärke des Ritters abzurufen, können Sie die folgende Abfrage verwenden:
<code class="sql">SELECT j.strength FROM mytable, JSON_TABLE(mycol, '$[*]' COLUMNS ( race VARCHAR(10) PATH '$.Race', strength INT PATH '$.strength' )) AS j WHERE j.race = 'Knight'</code>
Diese Abfrage verwendet die Funktion JSON_TABLE(), um eine virtuelle Tabelle aus dem JSON-Array mit Spalten für jedes Attribut zu erstellen. Die WHERE-Klausel wird dann verwendet, um die Ergebnisse basierend auf dem Attribut „Rasse“ zu filtern.
Vorteile und Einschränkungen
Die Verwendung von JSON_TABLE() bietet mehrere Vorteile:
Allerdings weist außerdem einige Einschränkungen auf:
Alternativer Ansatz
Wenn die Datenstruktur unbekannt ist oder sich häufig ändert, besteht ein alternativer Ansatz darin, die Funktion JSON_SEARCH() zu verwenden um den Pfad zum gewünschten Wert zu finden, und verwenden Sie dann den Pfadoperator, um den Wert zu extrahieren. Diese Methode ermöglicht jedoch keine so einfache Auswahl oder Projektion wie JSON_TABLE().
Das obige ist der detaillierte Inhalt vonWie frage ich den Stärkewert eines „Ritters' aus einem verschachtelten JSON-Array in MySQL ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!