MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで列の値をランダムな値に更新する方法

MySQLで列をランダムな値で更新するには?

MySQLである列(カラム)の値をランダムな値に一括更新したい場合、ROUND()関数とRAND()関数を組み合わせて使うのが簡単です。基本的な構文は以下のとおりです。

update yourTableName set yourColumnName = round(1+rand()*100);

この構文では、RAND()が0以上1未満の乱数を返し、それに100を掛けて1を足した後、ROUND()で四捨五入することで、1から100までの間のランダムな整数が生成されます。

それでは、実際の例を見ていきましょう。まずはテーブルを作成します。

テーブルの作成

mysql> create table DemoTable
    (
    Number int
    );
Query OK, 0 rows affected (0.46 sec)

レコードの挿入

次に、INSERTコマンドを使ってテーブルにレコードを挿入します。

mysql> insert into DemoTable values(10);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values(100);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values(80);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values(100000);
Query OK, 1 row affected (0.39 sec)
mysql> insert into DemoTable values(987);
Query OK, 1 row affected (0.16 sec)

レコードの確認

SELECT文ですべてのレコードを表示してみましょう。

mysql> select *from DemoTable;

実行すると、次のような出力が得られます。

+--------+
| Number |
+--------+
| 10     |
| 100    |
| 80     |
| 100000 |
| 987    |
+--------+
5 rows in set (0.00 sec)

ランダムな値で列を更新するクエリ

ここで、列の値をランダムな値で更新するためのクエリを実行します。

mysql> update DemoTable set Number=round(1+rand()*100);
Query OK, 5 rows affected (0.46 sec)
Rows matched: 5 Changed: 5 Warnings: 0

UPDATE文の実行後、もう一度テーブルの内容を確認してみます。

mysql> select *from DemoTable;

結果は以下のようになります。すべての行が1~100の範囲内のランダムな整数に書き換えられているのがわかります。

+--------+
| Number |
+--------+
| 33     |
| 88     |
| 41     |
| 39     |
| 70     |
+--------+
5 rows in set (0.00 sec)

ポイントまとめ

RAND()は行ごとに評価されるため、UPDATE文を実行すると各行に異なるランダム値が割り当てられます。生成される値の範囲を変更したい場合は、「1+rand()*100」の部分にある係数や加算値を調整してください。たとえば「1+rand()*999」にすれば1~1000の範囲になります。なお、WHERE句を指定しなければテーブル内の全行が更新対象となるため、実行前には十分注意しましょう。

  1. MySQLで列の値の先頭に文字列を追加(連結)する方法

    MySQLでは、列の値の先頭に文字列を追加したい場合、CONCAT関数を使用します。CONCAT関数はUPDATE文と組み合わせることで、既存のデータを一括して更新できます。 CONCAT関数とは CONCAT関数は、複数の文字列を連結するための関数です。「CONCAT(文字列1, 文字列2, ...)」のように引数を指定すると、それらを順番に結合した結果を返します。この特性を利用することで、列の値の前や後ろに任意の文字列を付加できます。 サンプルテーブルの作成 まず、動作確認用のテーブルを作成します。 mysql> create table PrependStringOnCOlumn

  2. JavaでMySQLデータベースのレコードを更新する方法【UPDATE文の使い方を実例で解説】

    MySQLデータベースのテーブルに格納されたデータを更新するには、UPDATEコマンドを使用します。本記事では、UPDATE文の基本構文から、実際にテーブルを作成し、Java(JDBC)経由でレコードを更新するまでの一連の手順を、サンプルコード付きで詳しく解説します。 UPDATE文の基本構文 MySQLで既存のデータを更新する場合、以下の構文を使用します。 update テーブル名 set カラム名1 = 値1, ....N where 条件; where句で条件を指定しないと、テーブル内のすべてのレコードが更新されてしまうため注意が必要です。 ステップ1:テーブルの作成 まずは更新用のサン