MySQL UPDATE对应的列具有1-3之间的随机数?

对于一定范围内的随机数,您需要使用RAND()MySQL中的方法。更新的语法如下-

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)
   -> );

使用insert命令在表中插入一些记录。查询如下-

mysql> insert into updateRowWith1To3 values(1,'John');

mysql> insert into updateRowWith1To3 values(2,'Sam');

mysql> insert into updateRowWith1To3 values(3,'Carol');

mysql> insert into updateRowWith1To3 values(4,'Mike');

mysql> insert into updateRowWith1To3 values(5,'Bob');

mysql> insert into updateRowWith1To3 values(6,'David');

使用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
));
Rows matched: 1 Changed: 1 Warnings: 0

现在您可以检查表格了。列名将在1-3之间用Mary更新。从表检查记录的查询如下-

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)