Heim >Datenbank >MySQL-Tutorial >Wie frage ich den Stärkewert eines „Ritters' aus einem verschachtelten JSON-Array in MySQL ab?

Wie frage ich den Stärkewert eines „Ritters' aus einem verschachtelten JSON-Array in MySQL ab?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-29 05:20:02298Durchsuche

How to Query Strength Value of a

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:

  • Ermöglicht die Auswahl und Projektion spezifischer Attribute aus dem JSON-Dokument.
  • Kann verwendet werden, um Bedingungen auf Felder innerhalb der JSON-Daten anzuwenden.

Allerdings weist außerdem einige Einschränkungen auf:

  • Erfordert die Angabe der Attributfelder in der Abfrage, was möglicherweise nicht möglich ist, wenn die Datenstruktur unbekannt ist.
  • Kann bei tiefergehender Auseinandersetzung zu komplexen Abfragen führen verschachtelte oder unstrukturierte JSON-Dokumente.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn