随机不重复排序抽取(索引法)

方法:

抽取所有id组成的索引数组array

根据count(array)获得记录总数,并根据rand(0,count(array)-1)生成随机数

根据array_splice(array,start,length,array)抽取元素,使原数组移除选定元素并重新排序,

array_push($array,$str/arr)将抽取的数插入一个新数组array中,

用implode(string glue, array pieces)或join(string glue, array pieces)将其转为字符串,并在整个记录集中更具选取的id索引抽取所需的记录数

时间: 2024-10-04 17:38:45

随机不重复排序抽取(索引法)的相关文章

Mongodb基础入门(3)——排序和索引

今天继续Mongodb,简单的记录下其排序和索引的使用. 在Mongodb中使用sort()方法对数据进行排序. 命令格式:db.collectionName.find().sort({key:参数}) 参数说明: -1:表示降序 1:表示升序(默认) doc集合中数据如下: > db.doc.find({},{_id:0,goods_id:1}) { "goods_id" : 1 } { "goods_id" : 4 } { "goods_id&q

下载Lucene4.X实战类baidu搜索的大型文档海量搜索系统(分词、过滤、排序、索引)

Lucene是一个高性能.可伸缩的信息搜索(IR)库.目前最新版本是4.3.1. 它可以为你的应用程序添加索引和搜索能力.Lucene是用java实现的.成熟的开源项目,是著名的Apache Jakarta大家庭的一员,并且基于Apache软件许可 [ASF, License].同样,Lucene是当前非常流行的.免费的Java信息搜索(IR)库. Lucene4.X实战类baidu搜索的大型文档海量搜索系统(分词.过滤.排序.索引),刚刚入手,转一注册文件,视频的确不错,可以先下载看看:htt

写一个函数实现数组中的元素随机乱序排序

//原生JS写一个函数实现一个shuffle方法,将数组中的元素随机乱序排序 var shuffle = function(arr){ var len,t,rand; for(var i =0;len = arr.length,i<len;i++){ rand = parseInt(Math.random()*len);//parseInt(Math.random()*(len-1-0)+1);或者rand = Math.floor(Math.random()*(len-1-0)+1);即Mat

生成四位随机不重复验证码

1.生成四位随机不重复验证码 //生成一个四位不重复的随机码 public static String get4Codes(){ StringBuffer sb = new StringBuffer(); String codes = "qwertyuiopasdfghjklzxcvbnm0123456789"; Random random = new Random(); for (int i =0; i< codes.length(); i++){ char c = codes

MySQL索引的维护与优化——查找重复及冗余索引

方法一:通过MySQL的information_schema数据库 查找重复与冗余索引 SELECT a.table_schema AS '数据库', a.table_name AS '表名', a.index_name AS '索引1', b.index_name AS '索引2', a.column_name AS '重复列名' FROM information_schema.statistics a JOIN statistics b ON a.table_schema = b.table

获取一个1~50的随机不重复数组

// 获取一个1~50的随机不重复数组// Math.ceil()用于向上取整 Math.floor()用于向下取整 Math.round()用于四舍五入取整数var arr = [];var number = 50;for(var i=1;i<=number;i++){ arr.push(i);}console.log(arr);var result = [];for(var j=number-1;j>=0;j--){ var rand = Math.ceil(Math.random()*j

算法-随机不重复数列生成

今天上班的时候网上看到题目很简单,题目是这样的:给定一个正整数n,需要输出一个长度为n的数组,数组元素是随机数,范围为0 – n-1,且元素不能重复.比如 n = 3 时,需要获取一个长度为3的数组,元素范围为0-2:简单的理解就是生成一个无序的随机数组,在路上想了一下回来用三种方式方式实现了一下:OC实现了一下,文章最末尾顺便有C#的是实现方法: 永远的While while基本上学过语言的最开始的流程分支语句都会涉及到while,如果存在就一直随机,不存在就跳出判断,一般最开始想到都是这样方

MYSQL order by排序与索引关系总结

MySQL InnoDB B-Tree索引使用Tips 这里主要讨论一下InnoDB B-Tree索引的使用,不提设计,只管使用.B-Tree索引主要作用于WHERE和ORDER BY子句.这里讨论的均在MySQL-Server-5.1.42测试 CREATE TABLE `friends` ( `ID` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `uid`bigint(20) UNSIGNED NOT NULL DEFAULT '0', `fuid`

数组的排序,冒泡法,快速排序法

1.冒泡法排序 /* * 冒泡法排序 :在要排序的一组数中,对当前还未排好序的范围内的全部数,自左而右对相邻的两个数 * 相邻的两个数的交换 */ public void bubbleSort(int[] num) { int temp = 0; for(int i=0;i<num.length-1;i++){ for(int j=0;j<num.length-1-i;j++){ if(num[j]>num[j+1]){ temp=num[j]; num[j]=num[j+1]; num