我想把数组打乱随机取些值,于是用PHP的shuffl()打乱数组,当然,array_rand()也是可以随机取数组的,但是我想到另一个更高效的办法,是不是能用sql直接随机数据?当然可以! mysql是这样实现的: select * from tablename order by rand() limit 10 说明:rand()返回在范围0到1.0内的随机浮点值 sqlserver是这样实现的: select top 10 * from tableName order by NewID() 说
原文:随机取若干条记录的SQL语句 MySql中随机提取数据库N条记录 select * from TableName order by rand() limit N SQLServer中随机提取数据库N条记录 select top N * from TableName order by NEWID() Access中随机提取数据库N条记录 SELECT top N * FROM TableName ORDER BY Rnd(Id) Id:为你当前表的唯一ID字段名
条不重复的数据,使用以下: 秒以上 搜索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 ; 万条的表,查询只需要0.01秒不到. 上面的语句采用的是JOIN,mysql的论坛上有人使用 SELECT * FROM `
最近在做接口测试的时候,测试数据是从数据库查询的,但是当需要并发多次去调用接口时,如果sql只是单纯的进行了limit取值,那并发的时候肯定会每条数据都一样. 因此,研究了下sql随机取一条数据的写法,从而用大量不同数据去进行并发的接口性能测试 原文:https://www.cnblogs.com/my_life/articles/7827233.html 三种方法: (1)ORDER BY RAND() 写法:SELECT * FROM 表A ORDER BY RAND() LIMIT 1 缺
在一张10万行产品表(Product)中,随机取10条数据的几种方式: SET STATISTICS IO ON SELECT TOP 10 ID FROM dbo.Product(NOLOCK) WHERE 0.01 >= CAST(CHECKSUM(NEWID(), ID) & 0x7fffffff AS FLOAT) / CAST(0x7fffffff AS INT) --扫描计数 1,逻辑读取 5 次 SELECT TOP 10 * FROM Product ORDER BY NEW
今天在review项目代码的时候看到这样一个问题,有一张号码表,每次需要从这样表中随机取6个空闲的号码,也就是每次取出来的6个号码应该都会有所不同.然后我就看到了这样的SQL select t.* from tel_number_tbl t where t.status = '空闲' and t.area_code = '0571' and t.delete_flg = '未删除' and rownum <= 6order by
SQL Server 2005后之后,引入了row_number()函数,row_number()函数的分组排序功能使这种操作变得非常简单 分组取TOP数据是T-SQL中的常用查询, 如学生信息管理系统中取出每个学科前3名的学生.这种查询在SQL Server 2005之前,写起来很繁琐,需要用到临时表关联查询才能取到.SQL Server 2005后之后,引入了row_number()函数,row_number()函数的分组排序功能使这种操作变得非常简单.下面是一个简单示例: --1.创建测试
工作中经常遇到有关数组的一些操作 1. 从数据中随机取n条不重复的数据 (PS:下面的S.each是KISSY.each方法,大家可以改为for循环) /* 1 从数组arr中随机取n条不重复的数据 */ function myRand(arr,num){ var newArr = []; rand(num); //随机 n 条 function rand(k){ if(k==0){ return; } var index = Math.floor(Math.random() * arr.len
随机取3条不重复的记录 [Access]select top 3 * from tablename order by rnd(id); [SqlServer]select top 3 * from tablename order by newid(); [MySQL]select * from tablename order by rand() limit 0,3; [Oracle]select * from (select * from tablename order by dbms_rand