使用 1-3 之間的隨機數更新 MySQL 的相應列


對於範圍內的隨機數,你需要使用 MySQL 中的 RAND() 方法。用於更新的語法如下 −

UPDATE yourTableName set yourColumnName=value where yourColumnName2=(SELECT
FLOOR(1+RAND()*3));

在上一個查詢中,語句 FLOOR(1+RAND()*3) 在 1-3 之間生成數字並更新列。

為了理解上述語法,我們先建立一個表。建立表的查詢如下 −

mysql> create table updateRowWith1To3
   -> (
   -> Id int,
   -> Name varchar(100)
   -> );
Query OK, 0 rows affected (0.47 sec)

使用 insert 命令在表中插入一些記錄。查詢如下 −

mysql> insert into updateRowWith1To3 values(1,'John');
Query OK, 1 row affected (0.24 sec)

mysql> insert into updateRowWith1To3 values(2,'Sam');
Query OK, 1 row affected (0.14 sec)

mysql> insert into updateRowWith1To3 values(3,'Carol');
Query OK, 1 row affected (0.14 sec)

mysql> insert into updateRowWith1To3 values(4,'Mike');
Query OK, 1 row affected (0.16 sec)

mysql> insert into updateRowWith1To3 values(5,'Bob');
Query OK, 1 row affected (0.10 sec)

mysql> insert into updateRowWith1To3 values(6,'David');
Query OK, 1 row affected (0.17 sec)

使用 select 語句顯示錶中的所有記錄。查詢如下 −

mysql> select *from updateRowWith1To3;

輸出

+------+-------+
| Id   | Name  |
+------+-------+
|    1 | John  |
|    2 | Sam   |
|    3 | Carol |
|    4 | Mike  |
|    5 | Bob   |
|    6 | David |
+------+-------+
6 rows in set (0.00 sec)

以下查詢可用於使用 1-3 之間的隨機數更新列名 −

mysql> update updateRowWith1To3 set Name='Mary' where Id=(select floor( 1 + RAND( ) *3
));
Query OK, 1 row affected (0.15 sec)
Rows matched: 1 Changed: 1 Warnings: 0

現在你可以檢查表格。列名已使用介於 1-3 之間的隨機數更新。檢查表中的記錄的查詢如下 −

mysql> select *from updateRowWith1To3;

輸出

+------+-------+
| Id   | Name  |
+------+-------+
|    1 | Mary  |
|    2 | Sam   |
|    3 | Carol |
|    4 | Mike  |
|    5 | Bob   |
|    6 | David |
+------+-------+
6 rows in set (0.00 sec)

更新於: 30-Jul-2019

905 閱讀

啟動你的 職業生涯

完成課程獲得認證

立即開始
廣告
© . All rights reserved.