Extrahieren Sie Python-Listenwerte in MYSQL
P粉153503989
2023-09-04 19:35:45
<p>Ich habe eine Spalte in einer MySQL-Datenbank, die eine <code>Python-Liste</code> mit Werten im <code>json</code> enthält: </p>
<table class="s-table">
<thead>
<tr>
<th>Spalte</th>
</tr>
</thead>
<tbody>
<tr>
<td>[{"name":"ich", "farbe": "rot"}, {"name": "du", "farbe": "blau"}]</td>
</tr>
</tbody>
</table>
<p>Ich kann die Funktion <code>json_extract()</code> nicht verwenden, da ihr Format nicht genau mit dem von <code>json</code></p> übereinstimmt.
<p>Ich möchte jeden <code>json</code> in einer neuen Spalte wie folgt extrahieren: </p>
<table class="s-table">
<thead>
<tr>
<th>Erste Spalte</th>
<th>Zweite Spalte</th>
</tr>
</thead>
<tbody>
<tr>
<td>{"Name": "I", "Farbe": "Rot"}</td>
<td>{"name":"du", "Farbe": "blau"}</td>
</tr>
</tbody>
</table></p>
以下查询结合字符串操作函数
SUBSTRING_INDEX
、REPLACE
和CONCAT
将获得预期结果。这里是使用 DBFIDDLE 的工作演示
这给了我预期的输出:
请将
mytable
替换为 your_actual_table_name,并将column
替换为您的实际列名称。我用反引号包围了列,因为列是 sql 中的保留关键字。您应该能够在问题中包含的示例列上使用 JSON_EXTRACT:
输出: