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!