Maison > base de données > tutoriel mysql > Comment la fonction JSON_TABLE de MySQL peut-elle convertir des tableaux JSON en lignes ?

Comment la fonction JSON_TABLE de MySQL peut-elle convertir des tableaux JSON en lignes ?

Patricia Arquette
Libérer: 2024-11-29 05:37:17
original
784 Les gens l'ont consulté

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

Conversion de tableaux JSON en lignes dans MySQL

Dans MySQL 5.7 et versions antérieures, la manipulation de JSON peut être difficile, en particulier lors de la conversion de tableaux JSON en rangées. Cependant, dans MySQL 8, la nouvelle fonction JSON_TABLE fournit une solution simple.

Fonction JSON_TABLE

La fonction JSON_TABLE vous permet d'extraire facilement des données d'un document et d'une carte JSON. à un schéma de table relationnelle. Pour convertir un tableau JSON en lignes, utilisez la syntaxe suivante :

SELECT *
FROM JSON_TABLE(
  <json_array>,
  "$[*]"
  COLUMNS(
    <column_name> <data_type> PATH "$"
  )
) <table_alias>;
Copier après la connexion

Exemple

Considérez un tableau JSON :

[5, 6, 7]
Copier après la connexion

Vous peut le convertir en table en utilisant JSON_TABLE :

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

La sortie sera be :

| Value |
|---|---|
| 5 |
| 6 |
| 7 |
Copier après la connexion

Fractionnement général des chaînes

MySQL ne dispose pas d'une fonction native de fractionnement des chaînes. Cependant, vous pouvez utiliser JSON_TABLE pour obtenir un résultat similaire :

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

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

Cela divisera la chaîne délimitée en un tableau JSON, puis la convertira en table.

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