Maison > base de données > tutoriel mysql > Comment puis-je convertir efficacement des tableaux JSON en lignes dans MySQL ?

Comment puis-je convertir efficacement des tableaux JSON en lignes dans MySQL ?

Patricia Arquette
Libérer: 2024-11-30 14:33:15
original
281 Les gens l'ont consulté

How Can I Efficiently Convert JSON Arrays into Rows in MySQL?

Conversion de tableaux JSON en lignes dans MySQL

Dans MySQL 5.7, la manipulation JSON a été considérablement améliorée, offrant diverses fonctionnalités pour l'extraction et le traitement des données au sein des structures JSON. Cependant, l'opération inverse de conversion d'un tableau JSON en lignes n'a pas été simple.

Tableau JSON en lignes

Pour insérer une ligne pour chaque élément dans un tableau JSON , une approche manuelle utilisant plusieurs requêtes JSON_EXTRACT() était auparavant nécessaire. Mais avec l'introduction de la fonction JSON_TABLE dans MySQL 8, ce processus est devenu plus simple :

SELECT *
FROM JSON_TABLE([5, 6, 7], '$[*]'
COLUMNS(
  Value INT PATH '$'
));
Copier après la connexion

Tableau JSON en chaîne séparée par des virgules

Pour convertir un Tableau JSON dans une chaîne séparée par des virgules à l'aide de GROUP_CONCAT(), une astuce peut être employé :

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

SELECT *
FROM JSON_TABLE(
  CONCAT('["', REPLACE(@delimited, ',', '", "'), '"]'),
  '$[*]'
  COLUMNS(
    Value varchar(50) PATH '$'
  )
);
Copier après la connexion

Cette approche traite la chaîne délimitée comme une chaîne JSON, ce qui entraîne une chaîne convertie séparée par des virgules.

Fonction STRING_SPLIT manquante

Bien que MySQL ne dispose pas d'une fonction STRING_SPLIT() dédiée, la fonction JSON_TABLE peut servir de substitut au fractionnement opérations, décomposant efficacement une chaîne délimitée en ses composants.

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