Heim >Datenbank >MySQL-Tutorial >Wie kann die JSON_TABLE-Funktion von MySQL JSON-Arrays in Zeilen konvertieren?

Wie kann die JSON_TABLE-Funktion von MySQL JSON-Arrays in Zeilen konvertieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-29 05:37:17825Durchsuche

How Can MySQL's JSON_TABLE Function Convert JSON Arrays into Rows?

Konvertieren von JSON-Arrays in Zeilen in MySQL

In MySQL 5.7 und früheren Versionen kann die Manipulation von JSON eine Herausforderung sein, insbesondere beim Konvertieren von JSON-Arrays in Reihen. In MySQL 8 bietet jedoch die neue Funktion JSON_TABLE eine unkomplizierte Lösung.

Funktion JSON_TABLE

Mit der Funktion JSON_TABLE können Sie ganz einfach Daten aus einem JSON-Dokument und einer JSON-Karte extrahieren es in ein relationales Tabellenschema umwandeln. Um ein JSON-Array in Zeilen zu konvertieren, verwenden Sie die folgende Syntax:

SELECT *
FROM JSON_TABLE(
  <json_array>,
  "$[*]"
  COLUMNS(
    <column_name> <data_type> PATH "$"
  )
) <table_alias>;

Beispiel

Stellen Sie sich ein JSON-Array vor:

[5, 6, 7]

Sie kann es mit JSON_TABLE in eine Tabelle konvertieren:

SELECT *
FROM JSON_TABLE(
  '[5, 6, 7]',
  "$[*]"
  COLUMNS(
    Value INT PATH "$"
  )
) data;

Die Ausgabe wird sein:

| Value |
|---|---|
| 5 |
| 6 |
| 7 |

Allgemeine String-Aufteilung

MySQL verfügt nicht über eine native String-Aufteilungsfunktion. Sie können jedoch JSON_TABLE verwenden, um ein ähnliches Ergebnis zu erzielen:

set @delimited = 'a,b,c';

SELECT *
FROM JSON_TABLE(
  CONCAT('["', REPLACE(@delimited, ',', '", "'), '"]'),
  "$[*]"
  COLUMNS(
    Value varchar(50) PATH "$"
  )
) data;

Dadurch wird die durch Trennzeichen getrennte Zeichenfolge in ein JSON-Array aufgeteilt und dann in eine Tabelle umgewandelt.

Das obige ist der detaillierte Inhalt vonWie kann die JSON_TABLE-Funktion von MySQL JSON-Arrays in Zeilen konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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