转自:https://www.jb51.net/article/66697.htm

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

1
2
3
4
5
6
7
mysql> SELECT RAND( ), RAND( ), RAND( );
+------------------+-----------------+------------------+
| RAND( )   | RAND( )   | RAND( )   |
+------------------+-----------------+------------------+
| 0.45464584925645 | 0.1824410643265 | 0.54826780459682 |
+------------------+-----------------+------------------+
1 row in set (0.00 sec)

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

1
2
3
4
5
6
7
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的表有以下记录:

1
2
3
4
5
6
7
8
9
10
11
12
13
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)

现在使用以下目录:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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()函数使用详解的更多相关文章

  1. MySQL中的RAND()函数使用详解(order by rand() 随机查询取前几条记录)

    MySQL RAND()函数调用可以在0和1之间产生一个随机数: mysql> SELECT RAND( ), RAND( ), RAND( ); +------------------+--- ...

  2. php中的PDO函数库详解

    PHP中的PDO函数库详解 PDO是一个“数据库访问抽象层”,作用是统一各种数据库的访问接口,与mysql和mysqli的函数库相比,PDO让跨数据库的使用更具有亲和力:与ADODB和MDB2相比,P ...

  3. delphi中Application.MessageBox函数用法详解

    delphi中Application.MessageBox函数用法详解 Application.MessageBox是TApplication的成员函数,声明如下:functionTApplicati ...

  4. binlog之四:mysql中binlog_format模式与配置详解,binlog的日志格式详解

    mysql复制主要有三种方式:基于SQL语句的复制(statement-based replication, SBR),基于行的复制(row-based replication, RBR),混合模式复 ...

  5. GCD中的dispatch_group函数的详解

    <一>引入dispatch_group函数的目的 在追加到dispatch_Queue中的多个处理全部结束后想要执行结束的处理,这种需求经常会在我们的程序中出现 (第一种情况)只使用一个S ...

  6. MySQL中的latch(闩锁)详解——易产生的问题以及原因分析

    Latch 什么是latch: 锁是数据库系统区别与文件系统的一个关键特性.锁机制用于管理对共享资源的并发访问.Innodb存储引擎在行级别上对表数据上锁,这固然不错.但是Innodb也会在多个地方使 ...

  7. MySQL中的char与varchar详解

    mysql中char与varchar的区别: char:定长,效率高,一般用于固定长度的表单提交数据存储  :例如:身份证号,手机号,电话,密码等 varchar:不定长,效率偏低 1.varchar ...

  8. MySQL中EXPLAIN结果的参数详解

    explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 使用方法,在select语句前加上explain就可以了.如: mysql& ...

  9. mysql中binlog_format模式与配置详解

    mysql复制主要有三种方式:基于SQL语句的复制(statement-based replication, SBR),基于行的复制(row-based replication, RBR),混合模式复 ...

随机推荐

  1. PHP中extract()函数的妙用

    看cakephp 2.3.8的源代码,很多地方都用 到 compact('name', 'response'); extract($status, EXTR_OVERWRITE); 这样的代码.com ...

  2. booth乘法器原理

    在微处理器芯片中,乘法器是进行数字信号处理的核心,同一时候也是微处理器中进行数据处理的wd=%E5%85%B3%E9%94%AE%E9%83%A8%E4%BB%B6&hl_tag=textli ...

  3. Oracle db中禁止使用sqlplus的方法

    先记录下来: How to Disable a SQL*Plus Connection for a User (文档 ID 124121.1)

  4. angularJS---自己定义过滤器

    AngularJS还有一个特点就是提供了过滤器.能够通过操作UNIX下管道的方式,操作数据结果. 通过使用管道.能够便于双向的数据绑定中视图的展现. 过滤器在处理过程中,将数据变成新的格式.并且能够使 ...

  5. 使用 C# 开发智能手机软件:推箱子(四)

    这是"使用 C# 开发智能手机软件:推箱子"系列文章的第四篇. 在这篇文章中,介绍 Common/FindPath.cs 源程序文件. using System; using Sy ...

  6. 【java】itoo项目实战之hibernate 批量保存优化

    在itoo中.基本上每一个系统都有一个导入功能,大量的数据填写进入excel模板中.然后使用导入功能导入的数据库中,这样能够大大的提高工作效率. 那么导入就涉及到了批量保存数据库的问题了. 那么通常情 ...

  7. BIOS维修技术

    BIOS是电脑中最基础且最重要的程序,为电脑提供最低级且最直接的硬件控制,电脑的原始操作都是依照固化在BIOS里的程序来完成的.因此如果BIOS出现故障将会导致影响电脑的正常工作.BIOS故障有很多, ...

  8. openwrt gstreamer实例学习笔记(七. gstreamer 缓冲区(Buffers)和事件(Events))

    1)概述 管道的数据流由一组缓冲区和事件组成,缓冲区包括实际的管道数据,事件包括控制信息,如寻找信息和流的终止信号.所有这些数据流在运行的时候自动的流过管道. 2) 缓冲区(Buffers) 缓冲区包 ...

  9. 【网络协议】IP协议、ARP协议、RARP协议

    IP数据报 IP是TCP/IP协议族中最核心的协议,全部的TCP.UDP.ICMP.IGMP数据都以IP数据报的格式传输.IP仅提供尽力而为的传输服务.假设发生某种错误.IP会丢失该数据.然后发送IC ...

  10. Appium&python

    Appium官网所描述的特性,都很吸引人,刚好最近在研究Mobile Automation Testing,所以很有兴趣探索下Appium这个年轻的工具. 不过看了官网的documents,实在是让初 ...