List of mysql

Rails の Migration で「Lost connection to MySQL server during query」と言われた際の対処方法

Published at: 2019/03/13

TL; DRread_timeout: タイムアウト秒数を config/database.yml に書く。詳細Lost connection to MySQL server during queryと言われながら、Rails で MySQL の既存の(巨大な)テーブルに index を追加する migration が失敗した。 ので、その原因を調査した際のメモ。 いろいろな情報がすごくミスリーディングだったりするので、ここにまとめを作っておく。まず、 MySQL サーバーはコネクションに対して、それがとてつもない Slow Query だったからといって、勝手に abort したりするようなことはしない。 …

MySQL で json 配列の要素一つ一つをレコードとする

Published at: 2019/03/02

MySQL で json カラムを用いた場合、その中身に json 配列を記録することができる。 普通に機能を開発していくと、この json 配列の中身から、その要素一つ一つを SQL 上のレコード1行に展開したい場合が出てくる。 それを実現するためには、 MySQL 8.0.…

mysql で json の中のオブジェクトからその値を json 配列で取得する

Published at: 2019/02/26

やりたいことmysql の json フィールドに json オブジェクトがあるとき、オブジェクトのキーは JSON_KEYS で取得ができるが、 一方でオブジェクトの値(value)の一覧を json 配列で取得したいと思った。やり方 -> '$.*' を用いることで、これが実現可能。クエリ例with json_objs(json_col) as ( select CAST('{"key1": "value1", "key2": "value2"}' AS JSON) UNION ALL select CAST('{"key3": "value3", "key4": "value4"}' AS JSON) ) select json_col->'$.*' from json_objs実行結果+----------------------+ | json_col->'$.*' | +----------------------+ | ["value1", "value2"] | | ["value3", "value4"] | +----------------------+