在 MYSQL 中提取 python 列表值
P粉153503989
2023-09-04 19:35:45
<p>我在 MySQL 数据库中有一个列,其中包含 <code>json</code> 格式值的 <code>python 列表</code>,如下所示:</p>
<table class="s-table">
<thead>
<tr>
<th>列</th>
</tr>
</thead>
<tbody>
<tr>
<td>[{"name":"me","color":"red"} , {"name":"you","color":"blue"}]</td>
</tr>
</tbody>
</table>
<p>我无法使用 <code>json_extract()</code> 函数,因为它的格式与 <code>json</code> 不完全相同</p>
<p>我想提取新列中格式化的每个 <code>json</code> ,如下所示:</p>
<table class="s-table">
<thead>
<tr>
<th>第一列</th>
<th>第二列</th>
</tr>
</thead>
<tbody>
<tr>
<td>{“名称”:“我”,“颜色”:“红色”}</td>
<td>{"name":"you","color":"blue"}</td>
</tr>
</tbody>
</table></p>
以下查询结合字符串操作函数
SUBSTRING_INDEX
、REPLACE
和CONCAT
将获得预期结果。这里是使用 DBFIDDLE 的工作演示
这给了我预期的输出:
请将
mytable
替换为 your_actual_table_name,并将column
替换为您的实际列名称。我用反引号包围了列,因为列是 sql 中的保留关键字。您应该能够在问题中包含的示例列上使用 JSON_EXTRACT:
输出: