Convertir un tableau JSON en lignes individuelles dans une table MySQL peut être un défi. Cependant, cette opération peut être réalisée à l'aide de diverses techniques, dont les suivantes :
Méthode 1 : JSON_EXTRACT et Union
Cette méthode consiste à extraire des éléments individuels du tableau à l'aide de la fonction JSON_EXTRACT et en les combinant à l'aide de l'opérateur UNION. Voici un exemple :
SET @j = '[1, 2, 3]'; SELECT JSON_EXTRACT(@j, '$[0]') AS value UNION SELECT JSON_EXTRACT(@j, '$[1]') AS value UNION SELECT JSON_EXTRACT(@j, '$[2]') AS value;
Méthode 2 : JSON_TABLE (MySQL 8 )
MySQL 8 introduit la fonction JSON_TABLE, qui permet de créer une table virtuelle basée sur un document JSON. Cela fournit un moyen simple de convertir des tableaux JSON en lignes. Voici un exemple :
SET @j = '[5, 6, 7]'; SELECT * FROM JSON_TABLE( @j, "$[*]" COLUMNS( Value INT PATH "$" ) ) data;
Méthode 3 : séparation de chaînes et JSON_TABLE
Cette technique exploite le fait que MySQL ne dispose pas d'une fonction de fractionnement de chaînes intégrée. En convertissant la chaîne délimitée en chaîne JSON, vous pouvez ensuite utiliser JSON_TABLE pour obtenir la fonctionnalité de fractionnement.
set @delimited = 'a,b,c'; SELECT * FROM JSON_TABLE( CONCAT('["', REPLACE(@delimited, ',', '", "'), '"]'), "$[*]" COLUMNS( Value varchar(50) PATH "$" ) ) data;
Ces méthodes fournissent des solutions polyvalentes pour convertir des tableaux JSON en lignes individuelles dans MySQL. Alors que MySQL 5.7 peut nécessiter des approches plus complexes, MySQL 8 introduit des options plus efficaces comme JSON_TABLE, ouvrant de nouvelles possibilités de manipulation des données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!