Heim > Datenbank > MySQL-Tutorial > Wie kann ich JSON-Arrays in Zeilen konvertieren und GROUP_CONCAT() in MySQL verwenden?

Wie kann ich JSON-Arrays in Zeilen konvertieren und GROUP_CONCAT() in MySQL verwenden?

Patricia Arquette
Freigeben: 2024-11-26 06:39:10
Original
879 Leute haben es durchsucht

How Can I Convert JSON Arrays to Rows and Use GROUP_CONCAT() in MySQL?

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;
Nach dem Login kopieren

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;
Nach dem Login kopieren

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;
Nach dem Login kopieren

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!

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