mysql:16400
From: "yoku ts." <"yoku ts." <yoku0825@xxxxxxxxxx>>
Date: Fri, 14 Apr 2017 10:43:33 +0900
Subject: [mysql 16400] Re: [mysql 16399] Re: [mysql 16393] [告知] MySQL勉強会 in 大阪(第10回):4/11(火)
yoku0825といいます。 もともとの宿題がわからないのですが、JSON型にキャストすると上手くいくのではないでしょうか? (微妙にカラム名とテーブル名が違うのはご容赦ください) ``` mysql57> SELECT json_insert(j,'$.authority.DC2', CAST('{"DC2":{"rack":["A01"]}}' AS JSON)) FROM t; +------------------------------------------------------------------------------+ | json_insert(j,'$.authority.DC2', CAST('{"DC2":{"rack":["A01"]}}' AS JSON)) | +------------------------------------------------------------------------------+ | {"authority": {"DC1": {"rack": ["A01"]}, "DC2": {"DC2": {"rack": ["A01"]}}}} | +------------------------------------------------------------------------------+ 1 row in set (0.00 sec) ``` あってますかね? yoku0825, 2017年4月14日 10:11 aoike <masahiro.aoike@xxxxxxxxxx>: > 先日はありがとうございました、あおいけです。 > > 宿題(?)だったJSON型の件です。 > jsonを扱う関数にjson文字列をjsonObjectとして使えないか…という問いに対して > 「json_extract使えばいいんじゃない?」とのことだったので試してみました。 > > JSON型のcolumn(authority)がupdate前には > {"authority": {"DC1": {"rack": ["A01"]}}} > となっている状態から > {"authority": {"DC1": {"rack": ["A01"]},"DC2":{"rack":["A01"]}}} > に変更したい({"DC2":{"rack":["A01"]}}をinsert)ので、json_unquoteにJson文字列を放り込んで > > update u_group set authority = > json_insert(authority,'$.authority.DC2',json_unquote("{\"DC2\":{\"rack\":[\"A01\"]}}")); > > とすると > {"authority": {"DC1": {"rack": ["A01"]},"DC2": > "{\"DC2\":{\"rack\":[\"A01\"]}}"}} > > と文字列扱いされてしまい、NGでした。 > >
16393 2017-04-05 18:30 ["YAMASAKI, Yoshiaki"] [告知] MySQL勉強会 in 大阪(第10回):4/11(火) 16399 2017-04-14 10:11 ┗[aoike <masahiro.aoik] Re: [mysql 16393] [告知] MySQL勉強会 in 大阪(第10回):4/11(火) -> 16400 2017-04-14 10:43 ┗["yoku ts." <yoku0825] Re: [mysql 16399] Re: [mysql 16393] [告知] MySQL勉強会 in 大阪(第10回):4/11(火) 16401 2017-04-14 11:19 ┗[aoike <masahiro.aoik] Re: [mysql 16400] Re: [mysql 16399] Re: [mysql 16393] [告知] MySQL勉強会 in 大阪(第10回):4/11(火)