2023-10-01から1ヶ月間の記事一覧

go-sql-driver/mysql の Scan の挙動にハマる

Go の MySQL ドライバーとして go-sql-driver/mysql を使用した際の挙動にハマったので、解決策を記しておきます。 クエリを発行し、取得した整数型の値をany型の値で受け取る際に予期しない結果となることがあります。 package main import ( "database/sql…

MySQL5.7でJSONを行に変換する

val {"Bob": {"A": 10, "B": 5}, "Alice": {"A": 10, "C": 5}} {"Bob": {"D": 10, "E": 5}, "Mike": {"A": 5, "F": 5}} 上記のようなJSON型の値を持った行から下記のような結果を得たいが、MySQL 5.7には JSON_TABLE が実装されていない。 name type val Bob…

MySQL5.7 でも順位を付けたい

MySQL をDBMSとして使用している環境において、取得結果をカラムの値で順位付けしたいことがあると思います。 バージョンが 8.0 であればウインドウ関数 RANK() を使用すれば実現できますが、5.7 を使用している場合は別の方法を取る必要があります。 動作確…