MYSQLでPythonリスト値を抽出する
P粉153503989
2023-09-04 19:35:45
<p>MySQL データベースに、次のような <code>json</code> 形式の値の <code>Python リスト</code> を含む列があります。 </p>
<テーブルクラス="s-テーブル">
<頭>
<tr>
<th>列</th>
</tr>
</頭>
<みんな>
<tr>
<td>[{"名前":"私","色":"赤"} , {"名前":"あなた","色":"青"}]</td>
</tr>
</tbody>
</テーブル>
<p><code>json_extract()</code> 関数の形式が <code>json</code></p> とまったく同じではないため、使用できません。
<p>次のように、新しい列にフォーマットされた各 <code>json</code> を抽出したいと思います。
<テーブルクラス="s-テーブル">
<頭>
<tr>
<th>最初の列</th>
<th>2 番目の列</th>
</tr>
</頭>
<みんな>
<tr>
<td>{"名前": "I"、"色": "赤"}</td>
<td>{"名前":"あなた","色":"青"}</td>
</tr>
</tbody>
</table></p>
次のクエリと文字列操作関数
リーリーSUBSTRING_INDEX
、REPLACE
、およびCONCAT
を組み合わせると、期待どおりの結果が得られます。これは、DBFIDDLE を使用する 実際のデモンストレーションです
これにより、期待される出力が得られます:
mytable
を your_actual_table_name に置き換え、
columnを実際の列名に置き換えてください。列はSQLの予約キーワードであるため、列をバッククォートで囲みました。
質問に含まれるサンプル列で JSON_EXTRACT を使用できるはずです:
リーリー出力: