`

关于数据库的随机查询

 
阅读更多
随机查询信息
SELECT * FROM `table`
WHERE id >= (SELECT floor(RAND() * (SELECT MAX(id) FROM `table`)))
ORDER BY id LIMIT 1;


最后,再把语句完善一下,加上MIN(id)的判断。我在最开始测试的时候,就是因为没有加上MIN(id)的判断,结果有一半的时间总是查询到表中的前面几行。
完整查询语句是:
SELECT * FROM `table`
WHERE id >= (SELECT floor( RAND() * ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`)) + (SELECT MIN(id) FROM `table`)))
ORDER BY id LIMIT 1;

SELECT *
FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`))+(SELECT MIN(id) FROM `table`)) AS id) AS t2
WHERE t1.id >= t2.id
ORDER BY t1.id LIMIT 1;

最后在php中对这两个语句进行分别查询10次,
前者花费时间 0.147433 秒
后者花费时间 0.015130 秒
看来采用JOIN的语法比直接在WHERE中使用函数效率还要高很多
分享到:
评论

相关推荐

    数据库随机查询代码

    ### 数据库随机查询知识点 #### 一、理解随机查询及其应用场景 在数据库管理与操作过程中,随机查询是一种常见的需求。这种查询方式主要用于获取表中的随机记录,常用于数据测试、统计抽样等场景。 #### 二、核心...

    1亿条记录的MongoDB数据库随机查询性能测试

    查询是通过pymongo库实现的,连接到MongoDB服务器并从"syslog"数据库的"thing"集合中随机选择"user_id"进行查找。这种并发查询的方式可以模拟多用户同时访问数据库的场景,以评估MongoDB在高并发下的性能表现。 在...

    Access数据库随机抽取记录条数.zip

    本资料"Access数据库随机抽取记录条数.zip"主要关注如何在Access中实现这一功能。 首先,我们要了解SQL(Structured Query Language),这是用于管理关系数据库的标准语言。在Access中,我们可以使用SQL查询来获取...

    ajax_数据库中随机读取5条数据动态在页面中刷新

    SQL查询使用`TOP 5`选取表`log`中的前5条记录,同时`NEWID()`函数用于生成唯一的标识符,确保每次请求的数据都是随机的。 请注意,这里省略了数据库操作的具体步骤,包括打开连接、执行SQL语句、获取结果集以及关闭...

    JAVA随机数据库数组

    - 使用`ArrayList<Integer>`存储从数据库查询到的ID(`arr1`)以及随机选择后的ID(`arr2`和`arr4`)。`arr4`将作为最终返回的结果,包含所有随机选择的题目ID。 - 连接数据库:通过JDBC(Java Database ...

    模糊数学在数据库模糊查询中的应用

    模糊数学在数据库模糊查询中的应用涉及到多个领域的知识,包括模糊数学的基础理论、模糊模式识别以及数据库技术和SQL语言的应用。 首先,模糊数学作为一门新兴的数学分支,其核心在于处理和描述不确定性和模糊性。...

    PHP实现在数据库百万条数据中随机获取20条记录的方法

    本文实例讲述了PHP实现在数据库百万条数据中随机获取20条记录的方法。分享给大家供大家参考,具体如下: 额,为什么要写这个? 在去某个公司面试时,让写个算法出来,当时就蒙了,我开发过程中用到算法的吗?又不是...

    JAVA主键随机+SELECT联动+数据库随机取数+F5刷新+字符编码乱码

    标题中的“JAVA主键随机+SELECT联动+数据库随机取数+F5刷新+字符编码乱码”涉及了几个关键的IT概念,我会逐一解释并展开讨论。 1. **JAVA主键随机**: 在Java编程中,主键是数据库表中用于唯一标识一条记录的字段...

    33 MySQL数据库的日志顺序读写以及数据文件随机读写的原理.pdf

    在执行数据库操作时,尤其是查询操作,系统可能需要从数据文件的任意位置读取或写入数据页,这就形成了随机读写。因为数据页在磁盘上的位置是不固定的,所以需要通过磁盘的随机读写来获取或更新数据。磁盘随机读写的...

    VB随机点名系统连接数据库

    ### VB随机点名系统连接数据库:知识解析与深入探讨 #### 一、系统概述与应用场景 在教育领域,尤其在课堂环境中,互动是促进学习效果的关键因素之一。传统的点名方式可能受到教师个人偏见或学生主动性的影响,而...

    随机得到Access数据库记录

    ### 随机获取Access数据库记录的方法 在处理Access数据库时,有时我们需要从数据库中随机抽取一条或多条记录。这看似简单的需求,在实际操作中却可能会遇到一些问题,特别是当涉及到Access数据库记录集缓存机制时。...

    DBMonster In Action 使用Ant自动产生数据库随机测试数据

    标题中的“DBMonster In Action 使用Ant自动产生数据库随机测试数据”揭示了这是一个关于数据库测试的实践教程,其中涉及到了DBMonster工具和Ant自动化构建工具。DBMonster通常用于生成大量模拟真实世界的数据库记录...

    order by newid() 各种数据库随机查询的方法

    在数据库管理中,有时我们需要对数据进行随机查询,例如在测试、抽样分析或构建随机化功能时。本文将探讨几种不同的数据库系统中如何使用`ORDER BY`子句结合特定函数来实现随机查询的方法。 首先,我们来看SQL ...

    63 案例实战:线上数据库莫名其妙的随机性能抖动优化(下)l.pdf

    数据库性能优化是确保在线业务高效稳定运行的重要环节,尤其是在处理线上数据库莫名其妙的随机性能抖动问题时,优化策略显得尤为重要。性能抖动是数据库性能问题的一种,通常表现为即使在负载较低的情况下,SQL语句...

    随机出题系统的java实现,使用java GUI和MySql数据库!

    ②Mysql数据库与java连接、题目的随机生成、界面切换、循环依赖都是如何设计和实现的。 阅读建议:此资源以开发随机出题系统学习其java GUI原理和内核,不仅是代码编写实现,也更注重内容上的需求分析和过程理解,...

    vb数据库编写考试系统

    - **数据查询**:在VB中,通过Command对象的Execute方法执行SQL查询,如SELECT、INSERT、UPDATE和DELETE语句,获取或更新数据库中的数据。 - **数据绑定控件**:如ListBox、ComboBox、GridView等,可以将数据库中...

    ASP.NET 2如何随机读取Access记录

    ASP.NET 2中随机读取Access记录的问题主要源于ADO访问Access数据库时的缓存机制,这可能导致在尝试按随机顺序获取记录时无法得到预期的结果。为了解决这个问题,我们可以采用一种巧妙的方法,通过在SQL查询中引入一...

    数据库中要产生随机整数的方法

    在数据库管理中,有时我们需要生成随机整数,这在各种应用场景中都非常常见,例如进行测试数据填充、模拟用户行为或创建在线随机考试系统。本文将详细介绍如何在SQL语句中生成随机整数。 1. **MySQL中的RAND()函数*...

Global site tag (gtag.js) - Google Analytics