MySQL 5.7.12 データベースに JSON カラムを持つテーブルがあります。
列のデータは次の構造になっています (json 配列には複数の json オブジェクトが含まれる場合があります):
[{"ste": "I", "tpe": "PS"}, {"ste": "I", "tpe": "PB"}]
tpe=PB
の ste
の値を変更する UPDATE
クエリを作成したいと考えています。
これは私の試みです:
ユーザーの更新 SET ext = JSON_SET(JSON_SEARCH(ext, 'one', 'PB', NULL, '$**.tpe'), '$.tpe', 'A');
クエリの出力は次のようになります:
[{"ste": "I", "tpe": "PS"}, {"ste": "A", "tpe": "PB"}]
これは機能しません。列が次のように更新されます:
"$[0].tpe"
どうすれば機能しますか?
######編集######これはより理にかなっていると思いますが、構文にはまだ問題があります リーリー
これがまだ必要であることを願っています。
#JSON_SET
で変数パスを使用してみてください。
JSON_SEARCHを使用して変数パスを取得し、
絶対パスtpeを
steに置き換えてその値を更新します。私にとってはうまくいきます!
リーリー