[前][次][番号順一覧][スレッド一覧]

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(火)