MySQLで6桁の乱数を生成する方法【LPAD・RAND・FLOOR活用】
MySQLで6桁の乱数を生成したい場合、LPAD()関数とRAND()関数、FLOOR()関数を組み合わせることで実現できます。この記事では、実際にテーブルを作成し、6桁の乱数を生成して格納するまでの手順を解説します。
1. テーブルの作成
まずはサンプル用のテーブルを作成しましょう。
mysql> create table DemoTable
(
Value int
);
Query OK, 0 rows affected (0.64 sec)2. レコードの挿入
次に、INSERT文を使ってテーブルにレコードを挿入します。
mysql> insert into DemoTable values(1); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable values(2); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable values(3); Query OK, 1 row affected (0.24 sec) mysql> insert into DemoTable values(4); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values(5); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values(6); Query OK, 1 row affected (0.19 sec)
3. 挿入したレコードの確認
SELECT文でテーブル内のすべてのレコードを表示してみましょう。
mysql> select * from DemoTable;
実行すると、以下のような結果が表示されます。
+-------+ | Value | +-------+ | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | +-------+ 6 rows in set (0.00 sec)
4. 6桁の乱数を生成するクエリ
ここからが本題です。MySQLで6桁の乱数を生成するには、以下のUPDATE文を実行します。
mysql> update DemoTable set Value=LPAD(FLOOR(RAND() * 999999.99), 6, '0'); Query OK, 6 rows affected (0.15 sec) Rows matched: 6 Changed: 6 Warnings: 0
クエリの仕組み
- RAND() * 999999.99: 0以上999999.99未満のランダムな小数値を生成します。
- FLOOR(): 小数点以下を切り捨てて整数にします。
- LPAD(..., 6, '0'): 値が6桁に満たない場合、左側を「0」で埋めて必ず6桁にします。
この組み合わせにより、「000001」から「999999」までの範囲で、先頭のゼロも含めた正確な6桁の乱数を生成できます。
5. 更新結果の確認
更新後のレコードをSELECT文で表示してみましょう。
mysql> select * from DemoTable;
実行すると、各レコードに6桁の乱数が格納されていることがわかります。
+--------+ | Value | +--------+ | 499540 | | 550607 | | 254419 | | 620272 | | 338104 | | 829705 | +--------+ 6 rows in set (0.00 sec)
まとめ
MySQLで6桁の乱数を生成するには、LPAD(FLOOR(RAND() * 999999.99), 6, '0')という式を使うのが簡単で効果的です。RAND()で乱数を発生させ、FLOOR()で整数化し、LPAD()で桁数を揃えることで、先頭ゼロを含む安定した6桁の乱数を得られます。認証コードやID生成など、さまざまな場面で応用できるテクニックなので、ぜひ覚えておきましょう。
-
Androidで指定した範囲の乱数を生成する方法【初心者向けサンプルコード付き】
この記事では、Androidアプリで指定した範囲(最小値〜最大値)の中からランダムな数値を生成する方法を、実際に動作するサンプルコードとともに解説します。ユーザーが入力した最小値と最大値をもとに、ボタンをタップすると乱数が画面に表示されるシンプルなアプリを作成していきます。 乱数生成の基本的な仕組み Java標準のjava.util.Randomクラスを利用すると、簡単に乱数を生成できます。任意の範囲内の乱数を取得するには、次の式を使います。 output = r.nextInt((max - min) + 1) + min; nextInt(n)メソッドは「0以上 n 未満」の整数を返します
-
MySQLでデータベース図(ER図)を自動生成する方法【MySQL Workbench活用ガイド】
MySQLでデータベース図(ER図)を自動生成したい場合は、公式GUIツールのMySQL Workbenchを利用するのが最も簡単です。Workbenchには「リバースエンジニアリング(Reverse Engineer)」機能が標準で搭載されており、既存のデータベースから自動的にER図を作成できます。 手順1:「Database」メニューを開く まず、MySQL Workbenchを起動し、上部メニューの「Database」を選択します。メニュー内の以下の項目をクリックしてください。 Database → Reverse Engineer 「Database」タブを開いたところのスクリーンショ