精华内容
下载资源
问答
  • 利用MySql随机生成一串不重复数字 在项目中我们可能用到一串数字作为标记,例如批次,淘宝的订单号,这些标记是不可以重复的,今天利用Mysql数据库简单生成一下: 想到不重复我们第一时间想到时间戳,current_...

    利用MySql随机生成一串不重复数字

    在项目中我们可能用到一串数字作为标记,例如批次,淘宝的订单号,这些标记是不可以重复的,今天利用Mysql数据库简单生成一下:
    想到不重复我们第一时间想到时间戳,current_timestamp()这是MySql提供给我们的查看当前时间戳的方法。
    在这里插入图片描述
    然后我们只需要把时间戳转换成一串数据就可以了。unix_timestamp(data)传一个时间戳参数,就可以获得一串数字。
    在这里插入图片描述
    我们发现在同一秒钟时间戳是一样的,当在同一秒钟生成2个标识,就会出现重复,我们给生成时间戳的函数传个值current_timestamp(5),此时它会在秒的后面多出5位,根据实际需要给定参数。
    在这里插入图片描述

    再通过unix_timestamp(data)生成数字串,但此时数据中会多出一个小数点,我们可以用replace(原字符串,目标字符,替换字符),把小数点去掉,最终生成一串数字串。
    在这里插入图片描述
    在经常需要的情况下,我们可以自定义一个fn_getBatch()函数,可以通过select fn_getBatch()直接调
    用。
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • ASP生成不重复随机数字的另类思路

    千次阅读 2012-07-19 08:35:23
    前两天看到有人要编个考试系统,当时只是简单回了下用随机函数RND  实际一般需要从...'产生不重复随机数 function rndarray(istart,iend,sum) dim arrayid(),i,j,blnre,temp,iloop,eloop redim arrayid(sum-

    前两天看到有人要编个考试系统,当时只是简单回了下用随机函数RND
      实际一般需要从数据库中随机提取N道题目。

      以下代码都基于VBS;

      通常的编写类似这样的


     

    '产生不重复随机数
    function rndarray(istart,iend,sum)
    dim arrayid(),i,j,blnre,temp,iloop,eloop
    redim arrayid(sum-1)
    i=0
    iloop=0
    eloop=0
    blnre=false
    randomize
    do while i<sum
    temp=int(rnd*(iend-istart+1)+istart)
    if i=0 then
    arrayid(0)=temp
    i=i+1
    iloop=iloop+1
    else

    for j=0 to i-1
    if arrayid(j)=temp then
    blnre=true
    iloop=iloop+1
    exit for'这一句很重要,防止多余的循环
    else
    iloop=iloop+1
    end if
    next

    if blnre=false then
    arrayid(i)=temp
    i=i+1
    else
    blnre=false
    end if

    end if
    eloop=eloop+iloop
    iloop=0
    loop
    rndarray=join(arrayid)&"循环次数:"&eloop
    end function

    response.write rndarray(1,10,5)&"<br>"'调用过程

    PS。其中的iloop、eloop是为了计算循环次数而已。

      以上,大多数人的都是用这种方法编写的,生成一个随机数,然后再和以前生成的做比较,判断是否可用;

      但这不是一种AI的,或者说有效率的方法,为什么不用两个数组呢?

      数组1,存放需要的字符串,或数字等,数组2存放生成的随机数;当每次随机生成中间变量temp的一个下标x,赋给数组2,然后从数组1中,去掉下标为x的数字,赋给中间变量temp;这样每生成一个随机数,就从数组1中拿掉这个数,下次再生成一个数就不会重复了,这种产生随机数的方法原理实际是从数组1中提取。

      方法二

    function rndstr(istart,iend,isum)
    dim i,j,vntarray()
    redim vntarray(iend-istart)
    j=istart
    for i=0 to iend-istart
    vntarray(i)=j
    j=j+1
    next

    dim vntarray2(),temp,x,y
    redim vntarray2(isum-1)
    y=iend-istart+1
    x=0
    temp=vntarray
    do while x<isum
    dim a
    randomize
    vntarray2(x)=temp(int(rnd*y))
    a=" "&vntarray2(x)&" "
    temp=split(trim(replace(chr(32)&join(temp)&chr(32),a," ")))
    x=x+1
    y=y-1
    loop
    rndstr=join(vntarray2)
    end function

    response.write rndstr(1,5,2)

    这样,是不是更简单呢

      展开一下,假如要生成随机字符串,包含字母数字时,仅需为数组1赋值时,用函数chr(num);

      假设,需要做一个手机中奖的页面程序。

      首先把值赋给数组1,可以130....~139....循环赋值,当然实际使用时从数据库中把已有的赋值,然后再随机提取赋给数组2;

      最后,再修饰一下

    temp=replace(join(array2),chr(32),"")
    phone=left(temp,6)&"***"&right(temp,2)

    得到类似137648***58的结果

     

     

     

     

    展开全文
  • 前段时间有个抽奖的应用需要为每个用户生成一个小于10000的不重复的随机数。 当时的想法是: 获取所有(或部分)可以使用的随机数数组,然后根据数组的大小获取一个随机数,就可以得到一个不重复的随机数。 ...
    前段时间有个抽奖的应用需要为每个用户生成一个小于10000的不重复的随机数。
    当时的想法是:
    获取所有(或部分)可以使用的随机数数组,然后根据数组的大小获取一个随机数,就可以得到一个不重复的随机数。
    今天突然想到个简单的解决办法,可以先将10000以内的所有数字随机打乱后插入到数据库,用户分配的时候,直接顺序获取就行了。逻辑简单了很多.
    展开全文
  • 卡号是五位数,无规则生成的数字形式。2.数据库已有详数量的卡号记录。之前的做法是,生成一个,查询一个,但是数量多的时候回出现卡顿。或者超过30秒。解决代码if(isset($_POST['act'])&&$_POST['act']==...

    已知,

    1.卡号是五位数,无规则生成的数字形式。

    2.数据库已有不详数量的卡号记录。

    之前的做法是,生成一个,查询一个,但是数量多的时候回出现卡顿。或者超过30秒。

    解决代码

    if(isset($_POST['act'])&&$_POST['act']=='adds'){

    $sql="insert into tb_member(MembCode,SourceStoreId,IsCheck) values";

    $num_old = (int)$_POST['num'];

    if($num_old<=10){

    $num_new = 15;

    }

    if($num_old>10){

    $num_new = $num_old*1.5;

    $num_new = intval($num_new);

    }

    for($i=0;$i

    getnewmembcodenew();

    }

    //把获取到的卡号数组分割成为本,拼接成in查询语句,取出相同卡号的数据

    $member_code_str = implode("','",$MembCodes);

    $member_code_str = "'".$member_code_str."'";

    $member_code_str_sql = "select MembCode from tb_member where MembCode in (".$member_code_str.")";

    $getnum=$Cls->getList($member_code_str_sql);

    foreach ($getnum as $k=>$v){

    $member_arr []= $v['MembCode'];

    }

    //把重复的去掉,并且取出需要的数量

    $MembCodes = array_diff($MembCodes,$member_arr);

    $MembCodes=array_slice($MembCodes,0,$num_old);

    //拼接插入语句

    foreach ($MembCodes as $v){

    $sql.="('$v',$StoreId,1),";

    }

    $sql=trim($sql,',');

    $is_ok=$Cls->Query($sql);

    }

    //卡号生成部分代码

    $MembCodes=array();

    function getnewmembcodenew(){

    global $Cls,$MembCodes;

    $rmcodes=mt_rand('10000','99999');

    $MembCodes[]=$rmcodes;

    return $rmcodes;

    }

    展开全文
  • 获取不重复的6位数字串或者8位数字串,保存在数据库中,下次获取的不能与之前的重复
  • 0-9之间的数字随机生成一个7位数,保存入数据库,此数据能和以前的数据重复,唯一性
  • 生成固定长度不重复的随机字符串

    千次阅读 2018-02-11 13:29:38
    问题 问题来自V2EX:如何生成固定长度唯一随机字符串?...串内容随机可被猜测,重复 目标数据量超过一千万 需要数据库 分析 其实重点在需要数据库,否则直接用一个随机数生成生成一千...
  • 每个商品详情页下面随机展示同类目下6个商品,要求6个商品都不重复,小程序要实现这样效果,操作数据库即可,插入数据库的数据格式是这样:a:6:{i:0;s:2:"{}";i:1;s:2:"{}";i:2;s:2:"{}";i:3;s:2:"{}";i:4;s:2:...
  • Java根据唯一ID生成唯一邀请码 场景: 需要通过资料码,拿到数据库中的某个文件资源 ...我们发现进制数是不重复的,我们来看一下进制数 比如二进制, 二位二进制数可以表示 2^2个十进制数 [0,3] ...
  • java生成不重复的字符串 使用场景 一个很小的知识知识点吧。数据库中的主键标识要求唯一不重复,二开发过程中可能因为主键标识会作为前端的一个节点标识也要求不能重复。这个时候从不同的表中拿出来的主键标识很大...
  • 实际的业务场景中需要生成4位不重复的字符串,这个场景比较特殊,不具有普遍性,正常场景的唯一单号都不会只有4位。 最先想到的是随机生成4位字符串,字符包括数字、大小写字母一共62位,基本可以满足使用要求,但是...
  • 随机id生成

    2017-12-15 10:28:58
    随机生成数字id,可以用于数据库主键id。ID生成器是指能产生不重复ID服务程序,在后台开发过程中,尤其是分布式服务、微服务程序开发过程中,经常会用到,例如,为用户每个请求产生一个唯一ID、为每个消息产生一...
  • 这里是我想要的:我需要Python生成一个简单的数字列表从0到1,000,000,000随机顺序,用于序列号(使用随机数,所以你能知道已经分配了多少个或做计时攻击很容易,即猜测下一个会出现)。这些数字与连接到它们的信息...
  •  今天在做一个项目时候,需要为用户随机生成一个四位编号,编号可以选择区间,并且可以跳过指定数字,另外能和数据库中已存在编码重复。刚开始时候,我做法是先依据0-9生成一个随机四位数字,然后再...
  • 1. 自己写代码产生随机的数字和字母组合,每产生1个去数据库查询该随机码是否已存在,如果已存在,则重新产生,直到不重复为止。 优点:没发现有啥优点。 缺点:产生速度慢,数据库交互频繁。 2. guid,该...
  • 1. 自己写代码产生随机的数字和字母组合,每产生1个去数据库查询该随机码是否已存在,如果已存在,则重新产生,直到不重复为止。 优点:没发现有啥优点。 缺点:产生速度慢,还要查询数据库,当数据量大的时候,可能...
  • 前段时间做了一个项目的需求,很多地方都需要用到随机,比如从指定的数据集合中随机抽取一个,随机抽取几个不重复,从指定范围内随机生成固定小数位的数字等等。 对于涉及数据库的查询,mysql中有提供随机函数,但...
  • 无序唯一ID生成算法

    2020-12-10 09:47:08
    这个方法应该最容易想到,GUID就是一个利用随机算法生成的128bit的随机数,并保证前后生成的两个数字相同,但由于长度足够长,所以生成的两个数字重复的概率非常小,可以认为是不会重复的。 然而这么长的数字并...
  • db2数据库,要向一个表中插入测试数据, 表中6个属性,只给前三个属性插入数据即可,都为...属性2 p2:17位数字,以10017开头,后12位随机生成即可 属性3 p3:32位不重复码 目标数据量 10亿条 分几批插入比较好?
  • 1. 自己写代码产生随机的数字和字母组合,每产生1个去数据库查询该随机码是否已存在,如果已存在,则重新产生,直到不重复为止。  优点:没发现有啥优点。   缺点:产生速度慢,还要查询数据库,当数据量大的...
  • PHP根据id生成邀请码

    千次阅读 2018-04-09 10:35:14
    方案一、id生成器本身就是一个不重复的数字,但长度过长还不美观,不符合邀请码的常用形式;$code = "{$userId}{$currentTime}"; 方案二、再有就是生成一个随机数,再从数据库里面查询看是否存在。缺点...
  • exce生成随机数

    2016-11-17 19:36:00
    有时候数据库没有数据,造数据...首先介绍一下如何用RAND()函数来生成随机数(同时返回多个值时是不重复的)。 如下图所示,在单元格中输入=RAND(),回车后单元格即返回了一个随机数字。 RAND()...
  • 1、随机生成1000个不重复的10000以内的数字; 2、随机生成1000个不重复的10000以内的数字,并将这些连接成一个字符串。 3、数据库集群,3个库中亿万级数据,如何从3个库中获取最新更新的3000条数据; ...
  • jmeter好东西

    2015-09-17 14:21:00
     功能:这个函数是从某个数字段随机读取数据替换参数,可以利用在测试需要添加多条数据记录而且某些字段需要唯一性测试脚本中,随机生成的参数是数字  作用:可以用来实现参数化http请求发送参数,使得在...
  • 看过新浪短连接服务,发现后面主要有6个字符串组成,于是第一个想到就是原来公司写一个游戏激活码规则,也就是下面算法2,26个大写字母 26小写字母,10个数字随机生成6个然后插入数据库对应一个id,短连接...
  • 看过新浪短连接服务,发现后面主要有6个字符串组成,于是第一个想到就是原来公司写一个游戏激活码规则,也就是下面算法2,26个大写字母 26小写字母,10个数字随机生成6个然后插入数据库对应一个id,短连接...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 129
精华内容 51
关键字:

数据库随机生成不重复的数字