从mysql数据表中随机取出一条记录

   当然最后我的一段代码有错误的,并不是真正意义上的随机取数据。回到家,赶快百度,这才知道了如何随机取数据..

  其余代码不多说,这里就告诉你这句核心查找数据表代码:

 代码如下  

select * from 表名 order by rand( ) limit 1;  //此处的1就是取出数据的条数

  但这样取数据网上有人说效率非常差的,那么要如何改进呢

  搜索Google,网上基本上都是查询max(id) * rand()来随机获取数据。

 代码如下  

SELECT *
FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM `table`)) AS id) AS t2
WHERE t1.id >= t2.id
ORDER BY t1.id ASC LIMIT 5;

  但是这样获得的是5条连续的记录。解决办法只能是每次查询一条,查询5次,但这个又不能满足我的要求了,我要一次找几条

  高效写法

 代码如下  

SELECT * FROM user  WHERE userId >= ((SELECT MAX(userId) FROM user )-(SELECT MIN(userId) FROM user )) * RAND() + (SELECT MIN(userId) FROM user )  LIMIT 5

时间: 2024-07-31 23:45:47

从mysql数据表中随机取出一条记录的相关文章

如何从数据库中随机取出10条记录的方法

<SCRIPT LANGUAGE=vbscript> function xipai(mystr) xipai="" if len(mystr)=0 then'如果是空的,那么初试化一付连续的牌 for i=1 to 52 mystr=mystr & "<" & i & "> " next end if dim i,x for i=1 to 52 myarry=split(mystr) 'myarry

如何从数据库中随机取出10条记录的方法_应用技巧

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

C#中从sqlserver数据库中随机提取一条记录并显示在不同的文本框中

问题描述 C#中从sqlserver数据库中随机提取一条记录并显示在不同的文本框中如图 解决方案 解决方案二:SQL:selecttop1姓名,学号,班级from表orderbynewid()C#对应上就好了.

select-asp.net 从Access中随机读取5条记录

问题描述 asp.net 从Access中随机读取5条记录 我用的是 select top 5 * from Pro where TypeId =1 order by rnd(ID) 在数据库查询的时候是随机的5条 每次查询都会变 但是在网页绑定时一直不变总是那几条记录 是什么原因? 解决方案 Asp.net获取Access随机记录ASP.NET 2.0中随机读取Access数据库记录ASP.NET 2.0中随机读取Access数据库记录

SQL Server某一数据表最多能存储多少条记录呢?

问题描述 SQL Server某一数据表最多能存储多少条记录呢? 解决方案 没有上限的,这是联机帮助上的原话: 每个表的行数: 受可用存储资源限制 这个可用资源受下面几个因素的影响: 1.你的磁盘剩余空间 2.你的数据文件所在的磁盘分区格式,FAT16只支持最大2G的数据文件,FAT32只支持最大4G的数据文件 3.你的SQL版本,如果你是用msde,则单个数据文件最大仅支持2G,其他版本的数据库最大支持32TB 4.你的表所在文件组的文件数解决方案二:只要机器够好,应该没有最大值,只是性能问题

mongodb中随机获取1条记录的实现方法_MongoDB

实现原理如下     1.先查询表中的记录总数     2.随机获取偏移量为0~总记录数-1     3.查询时skip偏移量,再获取1条记录 因本人测试环境php已升级到7.0以上,mongodb扩展使用支持php7.0以上的扩展,很多方法与php5.6不同.因此代码必须在php7.0以上运行.如果是php5.6环境,需要修改代码才能运行. 代码如下: function.php <?php // 连接mongodb function conn($host, $user, $passwd){ $

mysql 数据表中查找重复记录_Mysql

复制代码 代码如下: select user_name,count(*) as count from user_table group by user_name having count>1; 这个我在很早有发过一个asp下的ACCESS 的

两张表中添加一天一条记录 求大神 帮忙看下 sql 语句该如何去写

问题描述 求大神帮忙解决一个问题比如说有三张表A,B,C三张表,我想将A中的某条数据点击添加按钮的时候同时加到B和C两张表,如何添加?A和B是一对多关系B和C是一对多关系sql语句该如何去写 解决方案 解决方案二:分开逻辑写呗.解决方案三:用触发器可以吗解决方案四:触发器没经常用,的忘记中写了解决方案五:还有其他办法吗

从数据库中随机抽N条记录

数据|数据库|随机 Access:select top n * from table order by rnd(id)'id为数据库的自动编号字段 Sql Server:select top n * from tabl