Maison > base de données > tutoriel mysql > Comment convertir un tableau JSON en lignes dans MySQL ?

Comment convertir un tableau JSON en lignes dans MySQL ?

Mary-Kate Olsen
Libérer: 2024-11-26 02:54:09
original
410 Les gens l'ont consulté

How to Convert a JSON Array into Rows in MySQL?

Convertir un tableau JSON dans MySQL en lignes

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;
Copier après la connexion

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;
Copier après la connexion

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;
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal