要插入随机数,请使用RAND()MySQL中的function。让我们首先创建一个表-mysql> create table DemoTable
(
Value int
);
使用插入命令在表中插入一些记录-mysql> insert into DemoTable values(10);
mysql> insert into DemoTable values(20);
mysql> insert into DemoTable values(30);
使用select语句显示表中的所有记录-mysql> select *from DemoTable;
这将产生以下输出-+-------+
| Value |
+-------+
| 10 |
| 20 |
| 30 |
+-------+
3 rows in set (0.00 sec)
让我们在MySQL的表格中插入随机数-mysql> update DemoTable set Value=FLOOR(@number * rand()) + 1;
Rows matched: 3 Changed: 3 Warnings: 0
让我们再次检查表记录-mysql> select *from DemoTable;
这将产生以下输出-+-------+
| Value |
+-------+
| 2 |
| 2 |
| 1 |
+-------+
3 rows in set (0.00 sec)
1) 产生0到1000间的随机数
SELECT RAND() * 10000;
对应产生相应的整数
SELECT FLOOR(RAND() * 10000)
2) 使用md5()产生32位随机字符串
SELECT MD5(RAND() * 10000)
3) 产生500-1000间的整形
SELECT FLOOR( 500 + RAND() * (1000 - 500))
4) 假设某表如下结构
CREATE TABLE fact (
dim1 int,
dim2 int,
name varchar(20),
hash varchar(32),
measure1 double
);
则可以自动产生适合其结构的大量随机记录
create table names(id int auto_increment primary key, name varchar(20));
insert into names (name) values (‘Justin’,‘Jerry’,‘James’,‘Josh’,‘Julien’);
select (select name from names where id = 1 + rand() * 4);
这里有一个表专门产生随机的字符串;
INSERT INTO fact
SELECT FLOOR(1+ rand()*9999),
FLOOR(1 + rand()*499),
(select name from names where id = 1 + rand() * 4),
MD5(1+rand()*9999),
rand()
FROM fact;