MYSQLでPythonリスト値を抽出する
P粉153503989
P粉153503989 2023-09-04 19:35:45
0
2
496
<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>
P粉153503989
P粉153503989

全員に返信(2)
P粉311617763

次のクエリと文字列操作関数 SUBSTRING_INDEXREPLACE、および CONCAT を組み合わせると、期待どおりの結果が得られます。

リーリー

これは、DBFIDDLE を使用する 実際のデモンストレーションです

これにより、期待される出力が得られます:

最初の行 2列目
{"名前": "I"、"色": "赤"} {"名前":"あなた","色":"青"}

mytable を your_actual_table_name に置き換え、column を実際の列名に置き換えてください。列はSQLの予約キーワードであるため、列をバッククォートで囲みました。

いいねを押す +0
P粉445714413

質問に含まれるサンプル列で JSON_EXTRACT を使用できるはずです:

リーリー

出力:

最初の行 2列目
{"名前": "I"、"色": "赤"} {"名前": "あなた"、"色": "青"}
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート