Heim > Datenbank > MySQL-Tutorial > Wie extrahiere ich bestimmte Schlüsselwerte effizient aus JSON-Arrays in MySQL?

Wie extrahiere ich bestimmte Schlüsselwerte effizient aus JSON-Arrays in MySQL?

Susan Sarandon
Freigeben: 2024-10-29 13:43:02
Original
529 Leute haben es durchsucht

How to Efficiently Extract Specific Key Values from JSON Arrays in MySQL?

Spezifische Schlüsselwerte im MySQL-JSON-Array finden

In MySQL kann das Finden eines bestimmten Knotens in einem Array von JSON-Objekten eine Herausforderung sein. Um dieses Problem zu beheben, können Sie die Verwendung der Funktionen JSON_SEARCH und JSON_CONTAINS in Betracht ziehen. Eine Kombination dieser Funktionen zur Vereinfachung der Abfrage ist jedoch nicht immer möglich.

MySQL 8.0 bietet eine Lösung mit der Funktion JSON_TABLE(), die eine virtuelle abgeleitete Tabelle aus einem JSON-Dokument erstellt und diese effektiv als Zeilen und Spalten behandelt . Dadurch können Sie Vorgänge wie Auswahl und Projektion auf die JSON-Daten ausführen.

Zur Veranschaulichung fügen wir Ihre Beispieldaten in eine Tabelle ein:

<code class="sql">create table mytable ( mycol json );

insert into mytable set mycol = '[{"Race": "Orc", "strength": 14}, {"Race": "Knight", "strength": 7}]';</code>
Nach dem Login kopieren

Sie können jetzt JSON_TABLE() verwenden, um Erstellen Sie eine virtuelle Tabelle:

<code class="sql">SELECT j.*
FROM mytable,
JSON_TABLE(mycol, '$[*]' COLUMNS (
    race VARCHAR(10) PATH '$.Race',
    strength INT PATH '$.strength'
)) AS j;</code>
Nach dem Login kopieren

Dies führt zu folgendem Ergebnis:

race strength
Orc 14
Knight 7

Um die Stärke einer bestimmten Rasse abzurufen, können Sie eine WHERE-Klausel 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 = 'Orc';</code>
Nach dem Login kopieren

Dies gibt das folgende Ergebnis zurück:

strength
14

Dieser Ansatz erfordert jedoch, dass Sie die Attributfelder in Ihrer Abfrage angeben, die möglicherweise nicht für Datensätze mit unbekannten Attributdefinitionen geeignet sind.

Das obige ist der detaillierte Inhalt vonWie extrahiere ich bestimmte Schlüsselwerte effizient aus JSON-Arrays in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage