テストデータを作成する際に、特定のカラムに対してランダムな数値を設定しておきたいケースがあります。
テストデータ自体をプログラムで作成する場合もあるかと思いますが、今回は MySQL でランダムな数値を一括アップデートする方法を紹介します。
プログラムで作成する場合、最初に数値の範囲を決めておく必要がありますが、SQL であれば後から気軽に範囲を変えれるので便利です。
RAND関数で乱数を発行する
MySQL でランダムな浮動小数点値を発行するには RAND() 関数が用意されています。
SELECT RAND()
0.5202502380313819
1 から 100 の値として利用するには、この数値に 100 を掛けて切り上げしてあげることで実現できます。
切り上げには CEIL() 関数を利用します。
SELECT CEIL(RAND() * 100)
22
この仕組みを利用して、以下のような UPDATE 文を実行すれば、一括で更新できます。
hoge テーブルの category カラムに対して、1 から 100 までのランダムな整数を設定する SQL 文。
UPDATE hoge SET category = CEIL(RAND() * 100)