JSON-Arrays in MySQL abfragen: Lösung mit JSON_TABLE()
Sie können bestimmte Werte aus einem JSON-Array mithilfe von SQL-Funktionen wie JSON_SEARCH abrufen. Dies liefert jedoch nur den Pfad zum gewünschten Knoten. Um die Pfadsuche mit dem Abrufen tatsächlicher Werte zu kombinieren, können Sie die Funktion JSON_TABLE() verwenden.
JSON_TABLE() konvertiert ein JSON-Dokument in eine virtuelle Tabelle, sodass Sie SQL-Operationen wie WHERE und SELECT auf seine Elemente anwenden können . Durch die Angabe der Spalten und ihrer Pfade innerhalb des Arrays können Sie die gewünschten Attribute einfach filtern und projizieren. Betrachten Sie das folgende Beispiel:
SELECT j.strength FROM mytable, JSON_TABLE(mycol, '$[*]' COLUMNS ( race VARCHAR(10) PATH '$.Race', strength INT PATH '$.strength' ) ) AS j WHERE j.race = 'Knight'
Diese Abfrage würde den Stärkewert der Ritterrasse zurückgeben. Allerdings müssen Sie die Attributnamen und ihre Pfade explizit definieren, was möglicherweise nicht möglich ist, wenn die Datenstruktur dynamisch oder undefiniert ist.
Es ist erwähnenswert, dass die Verwendung von JSON_TABLE() die Konvertierung des JSON-Dokuments in ein Erstellen Sie für jede Abfrage eine virtuelle Tabelle, was sich bei großen Datenmengen auf die Leistung auswirken kann. Darüber hinaus müssen Sie bei diesem Ansatz die Attributfelder angeben, nach denen Sie suchen möchten, was die Verwendung für völlig undefinierte Datenstrukturen einschränkt.
Das obige ist der detaillierte Inhalt vonSo fragen Sie JSON-Arrays in MySQL ab: Kann JSON_TABLE() verwendet werden, um bestimmte Werte aus einem JSON-Array abzurufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!