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

Comment puis-je extraire efficacement des lignes de tableaux JSON dans MySQL ?

Linda Hamilton
Libérer: 2024-12-08 17:18:12
original
615 Les gens l'ont consulté

How Can I Efficiently Extract Rows from JSON Arrays in MySQL?

Extraction de lignes à partir de tableaux JSON dans MySQL

MySQL 5.7 introduit de puissantes fonctions JSON, permettant une manipulation transparente des données JSON. Cependant, extraire des éléments de tableau JSON en lignes s'est avéré difficile.

Le problème

La transformation de tableaux JSON en une structure basée sur des lignes reste un obstacle dans MySQL. Les options sont limitées à l'extraction manuelle d'éléments individuels à l'aide de JSON_EXTRACT() ou à l'union de plusieurs requêtes. Cette approche est lourde et sujette aux erreurs.

La solution : MySQL 8 et JSON_TABLE

MySQL 8 introduit JSON_TABLE, une solution complète pour travailler avec des données JSON. Il permet la conversion directe de tableaux JSON en lignes de tableau.

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

Utiliser JSON_TABLE comme séparateur universel

En plus de l'extraction de lignes, JSON_TABLE peut servir de séparateur polyvalent séparateur de chaînes, une fonctionnalité manquante dans MySQL. En convertissant une chaîne délimitée en JSON, il devient possible de séparer facilement ses composants.

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

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

Conclusion

JSON_TABLE offre aux utilisateurs de MySQL une approche simplifiée de la conversion de JSON. tableaux en lignes, éliminant ainsi le besoin d’unions complexes ou d’extraction manuelle. Il sert également d'outil pratique de fractionnement de chaînes, comblant une lacune notable dans les fonctionnalités de MySQL.

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!

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