Konvertierung von JSON-Arrays in Zeilen in MySQL
Einführung
Arbeiten mit JSON-Arrays in MySQL erfordert ein Verständnis seiner JSON-Manipulationsfunktionen. Allerdings entsteht eine Herausforderung, wenn diese Arrays in Zeilen konvertiert oder Operationen wie GROUP_CONCAT() auf ihnen ausgeführt werden. Dieser Artikel befasst sich mit solchen Szenarien und bietet Lösungen unter Verwendung der JSON-Funktionalität von MySQL.
Vom JSON-Array zu Zeilen
Um für jedes Element in einem JSON-Array eine Zeile einzufügen, gibt es einen Ansatz besteht darin, jedes Element manuell mit JSON_EXTRACT() zu extrahieren und die Ergebnisse zusammenzuführen. Eine sauberere Methode ist jedoch die Verwendung der JSON_TABLE-Funktion von MySQL 8:
SET @j = '[1, 2, 3]'; SELECT * FROM JSON_TABLE( @j, "$[*]" COLUMNS( Value INT PATH "$" ) ) data;
Dadurch wird eine Tabelle mit einer Spalte, „Wert“, erstellt, die die Elemente des JSON-Arrays enthält.
GROUP_CONCAT() auf JSON-Array
Um die Elemente eines JSON-Arrays zu einem zu verketten Durch Kommas getrennte Zeichenfolge mit GROUP_CONCAT() können Sie eine Kombination aus JSON_TABLE und GROUP_CONCAT() verwenden:
SELECT GROUP_CONCAT(Value) FROM JSON_TABLE( @j, "$[*]" COLUMNS( Value INT PATH "$" ) ) data;
JSON-Aufteilung
Für Szenarien ähnlich wie STRING_SPLIT( ), wie zum Beispiel das Konvertieren einer durch Kommas getrennten Zeichenfolge in Zeilen, können Sie JSON_TABLE nutzen, indem Sie die Zeichenfolge in a konvertieren JSON-Array:
set @delimited = 'a,b,c'; SELECT * FROM JSON_TABLE( CONCAT('["', REPLACE(@delimited, ',', '", "'), '"]'), "$[*]" COLUMNS( Value varchar(50) PATH "$" ) ) data;
Dadurch wird eine Tabelle mit einer Spalte „Wert“ erstellt, die die Elemente der durch Trennzeichen getrennten Zeichenfolge enthält.
Das obige ist der detaillierte Inhalt vonWie kann ich JSON-Arrays in Zeilen konvertieren und GROUP_CONCAT() in MySQL verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!