MySQL 5.7 führt leistungsstarke JSON-Funktionen ein, die eine nahtlose Bearbeitung von JSON-Daten ermöglichen. Das Extrahieren von JSON-Array-Elementen in Zeilen hat sich jedoch als Herausforderung erwiesen.
Das Problem
Die Umwandlung von JSON-Arrays in eine zeilenbasierte Struktur bleibt in MySQL ein Hindernis. Die Optionen beschränken sich auf das manuelle Extrahieren einzelner Elemente mithilfe von JSON_EXTRACT() oder das Zusammenführen mehrerer Abfragen. Dieser Ansatz ist umständlich und fehleranfällig.
Die Lösung: MySQL 8 und JSON_TABLE
MySQL 8 führt JSON_TABLE ein, eine umfassende Lösung für die Arbeit mit JSON-Daten. Es ermöglicht die direkte Konvertierung von JSON-Arrays in Tabellenzeilen.
SELECT * FROM JSON_TABLE( '[5, 6, 7]', "$[*]" COLUMNS( Value INT PATH "$" ) ) data;
Verwendung von JSON_TABLE als universeller Splitter
Zusätzlich zur Zeilenextraktion kann JSON_TABLE als vielseitiger Splitter dienen String-Splitter, eine Funktion, die in MySQL fehlt. Durch die Konvertierung einer durch Trennzeichen getrennten Zeichenfolge in JSON wird es möglich, ihre Komponenten einfach zu trennen.
set @delimited = 'a,b,c'; SELECT * FROM JSON_TABLE( CONCAT('["', REPLACE(@delimited, ',', '", "'), '"]'), "$[*]" COLUMNS( Value varchar(50) PATH "$" ) ) data;
Fazit
JSON_TABLE bietet MySQL-Benutzern einen optimierten Ansatz zur Konvertierung von JSON Arrays in Zeilen, wodurch komplexe Vereinigungen oder manuelle Extraktion überflüssig werden. Es dient auch als praktisches Tool zum Aufteilen von Zeichenfolgen und schließt eine bemerkenswerte Lücke in der Funktionalität von MySQL.
Das obige ist der detaillierte Inhalt vonWie kann ich Zeilen aus JSON-Arrays in MySQL effizient extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!