Extraire les valeurs de la liste Python dans MYSQL
P粉153503989
P粉153503989 2023-09-04 19:35:45
0
2
563
<p>J'ai une colonne dans une base de données MySQL qui contient une liste <code>python</code> de valeurs au format <code>json</code> <table class="s-table"> <tête> <tr> <th>Colonne</th> ≪/tr> ≪/tête> <corps> <tr> <td>[{"name": "moi", "color": "rouge"} , {"name": "vous", "color": "bleu"}]</td> ≪/tr> </tcorps> </tableau> <p>Je ne peux pas utiliser la fonction <code>json_extract()</code> car son format n'est pas exactement le même que <code>json</code></p> <p>Je souhaite extraire chaque <code>json</code> formaté dans une nouvelle colonne comme ceci : </p> <table class="s-table"> <tête> <tr> <th>Première colonne</th> <th>Deuxième colonne</th> ≪/tr> ≪/tête> <corps> <tr> <td>{"Nom": "I", "Couleur": "Rouge"}</td> <td>{"name":"vous","color":"bleu"}</td> ≪/tr> </tcorps> </table></p>
P粉153503989
P粉153503989

répondre à tous(2)
P粉311617763

La requête suivante combinée aux fonctions de manipulation de chaînes SUBSTRING_INDEXREPLACECONCAT obtiendra les résultats attendus.

SELECT 
  CONCAT('{', REPLACE(SUBSTRING_INDEX(SUBSTRING_INDEX(`column`, '}', 1), '{', -1), '\"', '"'), '}') AS First_column,
  CONCAT('{', REPLACE(SUBSTRING_INDEX(SUBSTRING_INDEX(`column`, '}', 2), '{', -1), '\"', '"'), '}') AS Second_column
FROM mytable;

Voici une démo fonctionnelle

utilisant DBFIDDLE

Cela me donne le résultat attendu :

Première chronique Deuxième colonne
{"nom": "i", "color": "rouge"} {"name": "vous", "color": "bleu"}

Veuillez remplacer mytable 替换为 your_actual_table_name,并将 column par le nom réel de votre colonne. J'ai entouré les colonnes de backticks car column est un mot-clé réservé en SQL.

P粉445714413

Vous devriez pouvoir utiliser JSON_EXTRACT sur les exemples de colonnes inclus dans la question :

SET @column = '[{"name":"me","color":"red"} , {"name":"you","color":"blue"}]';

SELECT
    JSON_EXTRACT(@column, '$[0]') AS First_column,
    JSON_EXTRACT(@column, '$[1]') AS Second_column;

Sortie :

Première chronique Deuxième colonne
{"nom": "moi", "couleur": "rouge"} {"nom": "vous", "couleur": "bleu"}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal