函数 说明
rand() 获取 0 - 1 之间的随机数
round(x,n) 四舍五入,保留 n 位小数
floor(x) 向下取整
ceiling(x) 向上取整

示例

  • 获取指定范围的随机数 round(rand()*(max-min)+min)

  • 获取指定范围的整数 FLOOR(i+RAND()*(j–i+1))

  • 更新字段为随机值 UPDATE test_user_comments SET reply_id = FLOOR(10+RAND()*(100-10)) where id > 66;

  • 随机取一条数据,更新字段为随机值 ``

示例如下:

mysql> select rand();
+--------------------+
| rand()             |
+--------------------+
| 0.7765779064750093 |
+--------------------+
1 row in set (0.00 sec)

mysql> select round(1.3456456,5);
+--------------------+
| round(1.3456456,5) |
+--------------------+
|            1.34565 |
+--------------------+
1 row in set (0.00 sec)

mysql> select floor(1.4356);
+---------------+
| floor(1.4356) |
+---------------+
|             1 |
+---------------+
1 row in set (0.00 sec)

mysql> select ceiling(2.457);
+----------------+
| ceiling(2.457) |
+----------------+
|              3 |
+----------------+
1 row in set (0.00 sec)

mysql> select round(rand()*(100-20)+20);
+---------------------------+
| round(rand()*(100-20)+20) |
+---------------------------+
|                        74 |
+---------------------------+
1 row in set (0.00 sec)

mysql> select floor(10+rand()*(100-10+1));
+-----------------------------+
| floor(10+rand()*(100-10+1)) |
+-----------------------------+
|                          59 |
+-----------------------------+
1 row in set (0.00 sec)

mysql> UPDATE test_user_comments SET reply_id = FLOOR(10+RAND()*(100-10)) where id < 10;
Query OK, 9 rows affected (0.10 sec)
Rows matched: 9  Changed: 9  Warnings: 0

mysql>