MySQL 用 1-3 之间的随机数更新相应列?

mysqlmysqli database

对于范围内的随机数,您需要使用 MySQL 中的 RAND() 方法。update 的语法如下 −

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

现在您可以检查表格。列名称将更新为 Mary 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)

相关文章