zoukankan      html  css  js  c++  java
  • 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() 随机查询取前几条记录

  • 相关阅读:
    live2d 快速实现好看的看板娘特效
    JQuery 日期转换日期方法封装
    SQL Server 之 DateTime的常用方法
    C# 之DateDiff 时间差扩展方法
    SQL Server 之如何查询某数据库下的触发器和语句
    Css 设置固定表格头部,内容可滚动
    jquery 点击tr选中checkbox,解决checkbox的默认点击事件被阻止的问题
    VS切换代码自动补全模式
    C#实现软键盘的几个关键技术介绍
    C# 模拟软件键盘输入,使Winfrom窗体不获取鼠标焦点方法
  • 原文地址:https://www.cnblogs.com/fps2tao/p/9041204.html
Copyright © 2011-2022 走看看