Extraire les valeurs de la liste Python dans MYSQL
P粉153503989
2023-09-04 19:35:45
<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>
La requête suivante combinée aux fonctions de manipulation de chaînes
SUBSTRING_INDEX
、REPLACE
和CONCAT
obtiendra les résultats attendus.Voici une démo fonctionnelle
utilisant DBFIDDLECela me donne le résultat attendu :
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.Vous devriez pouvoir utiliser JSON_EXTRACT sur les exemples de colonnes inclus dans la question :
Sortie :