MySQL RAND 函数

  • RAND 函数

    MySQL RAND函数,可以调用该函数以产生0到1之间的随机数-
    mysql>  SELECT RAND( ), RAND( ), RAND( );
    +------------------+-----------------+------------------+
    |      RAND( )     |      RAND( )    |      RAND( )     |
    +------------------+-----------------+------------------+
    | 0.45464584825645 | 0.1824410643165 | 0.54826780759682 |
    +------------------+-----------------+------------------+
    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-02-06 |        350         |
    |   5  | Zara | 2007-06-06 |        300         |
    |   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         |
    |   5  | Zara | 2007-06-06 |        300         |
    |   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.00 sec)