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
Patricia Arquetteoriginal
2024-11-29 05:37:17828parcourir

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>;

Exemple

Considérez un tableau JSON :

[5, 6, 7]

Vous peut le convertir en table en utilisant JSON_TABLE :

SELECT *
FROM JSON_TABLE(
  '[5, 6, 7]',
  "$[*]"
  COLUMNS(
    Value INT PATH "$"
  )
) data;

La sortie sera be :

| Value |
|---|---|
| 5 |
| 6 |
| 7 |

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;

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!

Déclaration:
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