• MySQL中的RAND()函数使用详解(order by 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)

    order by rand() 随机查询取前几条记录

  • 相关阅读:
    racket eval
    mex不兼容
    【转】雷军 程序员随想
    UBoot 目录结构和编译过程
    远程监控web开发
    STL容器[08]
    STL容器[07]
    STL容器[17]
    STL容器[06]
    stl.map使用总结
  • 原文地址:https://www.cnblogs.com/fps2tao/p/9041204.html
Copyright © 2020-2023  润新知