好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

mysql中的Rand()函数详解

本教程讲解mysql中的Rand()函数详解

MySQL Rand() 函数可以被调用,以产生一个在 0 和 1 之间的随机数:

mysql>  SELECT RAND( ), RAND( ), RAND( ); +------------------+-----------------+------------------+ | RAND( )          | RAND( )         | RAND( )          | +------------------+-----------------+------------------+ | 0.45464584925645 | 0.1824410643265 | 0.54826780459682 | +------------------+-----------------+------------------+ 1 row in set (0.00 sec)

当使用整数作为参数调用时,RAND()使用该值作为随机数的种子发生器。每次种子使用给定值生成,RAND()将产生一个可重复的系列数字:

mysql>  SELECT RAND(1), RAND( ), RAND( ); +------------------+------------------+------------------+ | RAND(1 )         | RAND( )          | RAND( )          | +------------------+------------------+------------------+ | 0.18109050223705 | 0.75023211143001 | 0.20788908117254 | +------------------+------------------+------------------+ 1 row in set (0.00 sec)

可以使用ORDER BY RAND()进行随机行集或值,如下:

要理解ORDER BY RAND()函数,考虑一个employee_tbl表,有以下记录:

 

mysql> SELECT * FROM employee_tbl; +------+------+------------+--------------------+ | id   | name | work_date  | daily_typing_pages | +------+------+------------+--------------------+ |    1 | John | 2007-01-24 |                250 | |    2 | Ram  | 2007-05-27 |                220 | |    3 | Jack | 2007-05-06 |                170 | |    3 | Jack | 2007-04-06 |                100 | |    4 | Jill | 2007-04-06 |                220 | |    5 | Zara | 2007-06-06 |                300 | |    5 | Zara | 2007-02-06 |                350 | +------+------+------------+--------------------+ 7 rows in set (0.00 sec)

现在,使用下面的命令:

mysql> SELECT * FROM employee_tbl ORDER BY RAND(); +------+------+------------+--------------------+ | id   | name | work_date  | daily_typing_pages | +------+------+------------+--------------------+ |    5 | Zara | 2007-06-06 |                300 | |    3 | Jack | 2007-04-06 |                100 | |    3 | Jack | 2007-05-06 |                170 | |    2 | Ram  | 2007-05-27 |                220 | |    4 | Jill | 2007-04-06 |                220 | |    5 | Zara | 2007-02-06 |                350 | |    1 | John | 2007-01-24 |                250 | +------+------+------------+--------------------+ 7 rows in set (0.01 sec)

mysql> SELECT * FROM employee_tbl ORDER BY RAND(); +------+------+------------+--------------------+ | id   | name | work_date  | daily_typing_pages | +------+------+------------+--------------------+ |    5 | Zara | 2007-02-06 |                350 | |    2 | Ram  | 2007-05-27 |                220 | |    3 | Jack | 2007-04-06 |                100 | |    1 | John | 2007-01-24 |                250 | |    4 | Jill | 2007-04-06 |                220 | |    3 | Jack | 2007-05-06 |                170 | |    5 | Zara | 2007-06-06 |                300 | +------+------+------------+--------------------+ 7 rows in set (0.00 sec)

查看更多关于mysql中的Rand()函数详解的详细内容...

  阅读:51次