MySQL sucht JSON-Wert nach Schlüssel im Array
In MySQL 8.0.15 kann das Finden eines bestimmten Werts in einem Array von JSON-Objekten erfolgen herausfordernd. Die Funktion JSON_TABLE() bietet jedoch eine Lösung, indem sie das JSON-Dokument in eine virtuelle abgeleitete Tabelle konvertiert.
Betrachten Sie das folgende Array:
<code class="json">[ {"Race": "Orc", "strength": 14}, {"Race": "Knight", "strength": 7}, ]</code>
Um die Stärke des Ritters abzurufen, haben wir kann Folgendes 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>
Dadurch wird das JSON-Array in eine Tabelle mit den Spalten „Rasse“ und „Stärke“ konvertiert, sodass wir eine WHERE-Klausel anwenden können, um den gewünschten Wert zu finden.
Allerdings Der Nachteil der Verwendung von JSON_TABLE() besteht darin, dass die gewünschten Attribute in der Abfrage angegeben werden müssen, was möglicherweise nicht möglich ist, wenn die Attribute unbekannt sind. Dies unterstreicht die Bedeutung der Definition von Attributen bei der Arbeit mit JSON-Daten, um Abfragen zu vereinfachen und komplexe Verknüpfungen zu vermeiden.
Das obige ist der detaillierte Inhalt vonWie kann man in MySQL 8.0.15 effizient nach einem bestimmten Wert in einem JSON-Array suchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!