精华内容
下载资源
问答
  • MySql随机生成一串不重复数字

    千次阅读 2020-06-05 14:25:58
    利用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()直接调
    用。
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 0-9的数字索引从0开始 索引 和数字一一对应,使用产生随机索引的方式随机产生数字,将产生的随机索引的元素和后面的元素交换位置,将数字的顺序打乱且不重复,最后打印输出前6个数字。 int[] array = {0,1,2,3,4,5...

    方法1.采用随机索引交换元素

    0-9的数字索引从0开始 索引 和数字一一对应,使用产生随机索引的方式随机产生数字,将产生的随机索引的元素和后面的元素交换位置,将数字的顺序打乱且不重复,最后打印输出前6个数字。

        int[] array = {0,1,2,3,4,5,6,7,8,9};
        Random rand = new Random();
        for (int i = 10; i > 1; i--) {
            int index = rand.nextInt(i);
            int tmp = array[index];
            array[index] = array[i - 1];
            array[i - 1] = tmp;
        }
        int result = 0;
        for(int i = 0; i < 6; i++){
    			System.out.print(array[i]);
    	}
      //    for(int i = 0; i < 6; i++)
      //      result = result * 10 + array[i];
      //	    System.out.println(result);
    

    方法2.使用Java集合 Set 解决问题

    public class Test3{
    	public static void main(String[] args) {
    		Set<Integer> set = new HashSet<Integer>();      
    		for(int i = 0; i < 6; i++){           
    			int a;           
    			do{            
    				a = (int)(Math.random() * 10);           
    			}while(set.contains(a));           
    			set.add(a);        
    		System.out.print(a + " ");       
    		}  	
    	}
    }
    

    方法3.使用Java集合 Set 解决问题

    Set<Integer> set =new HashSet<Integer>(); //定义一个set。
    		Random r = new Random();                 //定义一个产生随机数的实体对象;
    		while (set.size() < 6) {                  //产生6个:因为set是无序唯一的;
    			int r_number = r.nextInt(10);// 产生0到9的整型数据
    			set.add(r_number);
    		}
    		/**
    		 * 下面是遍历出产生的随机数
    		 */
    		Iterator<Integer> it = set.iterator();//迭代器
    		while (it.hasNext()) {
    			System.out.print(it.next());//取出数据
    			
    	}
    
    展开全文
  • 一 要求随机生成一个字符串, 要求该字符串在原来的字符串列表当中即可,再将生成的字符串添加到列表中, 生成新的字符串列表 public class Test { public static void main(String[] args) { List<String> ...

    一 要求随机生成一个字符串, 要求该字符串不在原来的字符串列表当中即可,再将生成的字符串添加到列表中, 生成新的字符串列表

    public class Test {
    
        public static void main(String[] args) {
            List<String> macTypeIdList = new ArrayList<>();
            macTypeIdList.add("500396");
            macTypeIdList.add("500903");
            macTypeIdList.add("500749");
            macTypeIdList.add("500808");
            macTypeIdList.add("500101");
            String typeId ="000";
            String supplierId = "500";
            Random random = new Random();
            while (true){
                int serialNum = random.nextInt(900) + 100;
                typeId = supplierId + serialNum;
                if (!macTypeIdList.contains(typeId)){
                    System.out.println(typeId);
                    System.out.println(macTypeIdList);
                    break;
                }
            }
        }
    }
    

    二 要求随机一个Long类型的设备类型id, 要求该数字不在原来的List设备Id列表当中即可. 设备类型Id = 500 + 一个三位数的随机数, 新生成的设备id添加到列表当中,形成新的列表

    代码:

     public static void main(String[] args) {
        List<Long> macTypeIdList = new ArrayList<>();
        macTypeIdList.add(500396L);
        macTypeIdList.add(500903L);
        macTypeIdList.add(500749L);
        macTypeIdList.add(500808L);
        macTypeIdList.add(500101L);
        long typeId = 0;
        int supplierId = 500;
        Random random = new Random();
        while (true){
            int serialNum = random.nextInt(900) + 100;
            typeId = Long.parseLong (String.valueOf(supplierId)+String.valueOf(serialNum));
            if (!macTypeIdList.contains(typeId)){
                System.out.println(typeId);
                break;
            }
        }
    
        macTypeIdList.add(typeId);
        System.out.println(macTypeIdList);
    }
    

    控制台输出:
    在这里插入图片描述

    延伸思考:

    当设备类型Id列表是从数据库中获取的, 
    设备类型Id 数量一直添加, 理论上会不会进入死循环, 内存溢出.???
    
    个人觉得会, 设备类型Id不能重复,  并且最后由一个三位数的随机数拼接, 100-999是900个.
    实际上也就规定了macTypeIdList的数量不能超过900个.
    当数据库获取的数量没有超过900个时, 是没有问题的, 超出就会进入死循环.
    如何优化?
    

    代码如下:

    public class Test {
    
        public static void main(String[] args) {
            List<Long> macTypeIdList = new ArrayList<>();
            macTypeIdList.add(500396L);
            macTypeIdList.add(500903L);
            macTypeIdList.add(500749L);
            macTypeIdList.add(500808L);
            macTypeIdList.add(500101L);
           // ...
            
            long typeId = 0;
            int supplierId = 500;
            Random random = new Random();
    
            if(macTypeIdList.size()< 900){
    
                while (true){
                    int serialNum = random.nextInt(900) + 100;
                    typeId = Long.parseLong (String.valueOf(supplierId)+String.valueOf(serialNum));
                    if (!macTypeIdList.contains(typeId)){
                        System.out.println(typeId);
                        macTypeIdList.add(typeId);
                        System.out.println(macTypeIdList);
                        break;
                    }
                }
            }else{
                System.out.println("macTypeId的数量已达上限");
            }
    
    }
    
    展开全文
  • 这是自动生成不重复主键的代码包,直接导包进入程序即可使用,帮助生成由字母数字组成的16位id号,可以用于数据库主键存储(使用数据库自增主键始终有问题,不适合大型程序的使用),该代码包运用于很多大型企业级...
  • 生成不重复12位随机字符串

    千次阅读 2019-04-12 16:18:52
    1.生成一个12位随机不重复数字字符串 public static String couponCode(){ int first = new Random().nextInt(9); int rnd = UUID.randomUUID().toString().hashCode(); if(rnd < 0){ ...

    1.生成一个12位随机不重复纯数字字符串

    public static String couponCode(){
              int first = new Random().nextInt(9);
              int rnd = UUID.randomUUID().toString().hashCode();
              if(rnd < 0){
               rnd = -rnd;
              }
              return first+String.format("%010d", rnd);
     }

     

    2.生成一个以自定义字符串开头的不重复随机字符串

    public static String couponCode(String couponType){
              int first = new Random().nextInt(9);
              int rnd = UUID.randomUUID().toString().hashCode();
              if(rnd < 0){
               rnd = -rnd;
              }
              return couponType+first+String.format("%010d", rnd);
        }

    公司亿万数据正常使用,亲测万级并发下重复率极低,如果需要保证绝对不重复,可以将生产的字符串放入缓存或者数据库表(专门存放id的表)中,在生存后查询是否重复,如果重复重新生存新的

    展开全文
  • Oracle数据库—主键ID生成不重复的字符串函数sys_guid() 今天准备压测服务器,准备生成10W条数据,但是主键ID要Oracle数据库自动生成。 在oracle8i以后提供了一个生成不重复的数据的一个函数sys_guid()一共32位,...
  • python 生成随机不重复的用户id

    千次阅读 2017-07-31 16:05:12
    数据库里面有时候需要不重复的id 来表示用户id,就像QQ号码一样。 如果简单用uuid来生成的话,生成64位,太长。 生成6到8位gid def generate_gid(): gids = [] for number in range(100000, 10000000): gids....
  • 获取不重复的6位数字串或者8位数字串,保存在数据库中,下次获取的不能与之前的重复
  • 先不管随机码是否重复,写一个根据电话来生成10位随机字符串的函数 ... let crypto = require('crypto') //引用加密模块 ... /* * 根据一个盐值加密生成随机的字符串 * @function * @param {string} source 要转换的...
  • 问题来源业务中有时会遇到要生成不重复随机数的情况,例如,新生成一个商品的id、房间的id、或者其他物品的id等。不愿意采用数据库中的记录id,同时又要保证新生成的id是不重复的。这就需要考验mysql的随机数功能了...
  • java生成随机不重复id

    千次阅读 2015-04-24 10:56:16
    java生成随机不重复id
  • package org.random; import java.util.Date; import java.util.Random; public class SeedUtil { private static Long randomNumber;... private static Long curIndex = Long.valueOf(0L);... public SeedUtil() {...
  • PHP怎么生成6位的不重复的字符串 我们要考虑到: 1、不重复。 2、安全性。 【 不建议使用啥敏感的数据作为订单生成规则(例如:用户UID,订单自增ORDER_ID等),以为会暴露网站一些敏感信息】 3、不能使用大规模随机码。...
  • 最近在论坛看到有人问,如何快速生成100万不重复的8位编号,对于这个问题,有几点是需要注意的: 1. 如何生成8位随机数,生成的数越随机,重复的可能性当然越小 2. 控制不重复 3. 考虑性能 针对这个问题,我...
  • Java生成有规律不重复随机编码

    千次阅读 2018-01-19 10:01:10
    2、解决随机生成不重复编码问题 3、编码如下: /* @param maxOrderno // 从数据库查询出的最大编号 */ public static synchronized List getEncode(String maxOrderno,int count) { String Ord
  • ASP生成不重复随机数字的另类思路

    千次阅读 2012-07-19 08:35:23
    前两天看到有人要编个考试系统,当时只是简单回了下用随机函数RND  实际一般需要从...'产生不重复随机数 function rndarray(istart,iend,sum) dim arrayid(),i,j,blnre,temp,iloop,eloop redim arrayid(sum-
  • Thought ...不难发现这是一个递归的过程,而跳出递归的条件就是中途出错或者已经找到不重复的 code。 Promise Style fileUtil.js 中 /** * 产生一个不重复的code */ function generateCode() {...
  • //随机数组 $list = Db::name("$table")->where($pk,'in',$a)->select(); return json($list); } 2.查询数据 $q =Db::name('cms_testdetail')->where('rand()')->limit(2)->select();
  • 随机id生成

    2017-12-15 10:28:58
    随机生成数字id,可以用于数据库主键id。ID生成器是指能产生不重复ID服务的程序,在后台开发过程中,尤其是分布式服务、微服务程序开发过程中,经常会用到,例如,为用户的每个请求产生一个唯一ID、为每个消息产生一...
  • 生成固定长度不重复随机字符串

    千次阅读 2018-02-11 13:29:38
    问题 问题来自V2EX:如何生成固定长度唯一随机字符串?...串内容随机可被猜测,重复 目标数据量超过一千万 需要数据库 分析 其实重点在需要数据库,否则直接用一个随机数生成生成一千...
  • 利用时间生成一个永不重复的KEY。可以用于数据库主键。
  • 0-9之间的数字随机生成一个7位数,保存入数据库,此数据能和以前的数据重复,唯一性
  • 为了减少数据量,我们希望重复数据插入到一张表中,之前使用的都是查询出相应的数据,然后与被插入的数据进行比较,判断是否插入数据库。 后面想到一种新方式,不用2次数据库交互----使用exisits insert into ...
  • 今天我们介绍一下如何在 SQLite 中生成随机数据,包括随机数字、手机验证码、随机字符串、随机日期和时间、UUID 以及返回表中的随机记录等。
  • 本文介绍了在 PostgreSQL 中生成随机数据的方法,包括随机数字、验证码、随机字符串以及随机日期和时间等,同时还介绍了如何从表中返回随机记录,以及如何生成 UUID。
  • 获取5个不重复的随机数-重复的话重新随机生成 /* 编写程序:产生5个不重复的随机数。重复的话重新随机生成。 最终生成的5个随机数放到数组中,要求数组中的着5个随机数不重复。 */ public class Test02 { public ...
  • Java生成随机不重复推广码邀请码

    千次阅读 2017-09-21 10:00:57
    ...   最近接到一个需求,要批量生成推广码,首先我们知道推广码的特效有如下两点: 1:重复 2:可以被推测出 关于这两点,我们的思路大体分为如下几类: 1:每次生成一个随机码后查数据库...
  • 介绍如何在 Oracle 数据库中使用系统程序包 DBMS_RANDOM 生成随机数据,包括随机数字、验证码、随机字符串以及随机日期和时间等,同时还介绍了如何从表中返回随机记录,以及如何生成 UUID。
  • 在oracle8i以后提供了一个生成不重复的数据的一个函数sys_guid()一共32位,生成的依据主要是时间和机器码,具有世界唯一性,类似于java中的UUID(都是世界唯一的)。 其应用场景:当数据库某字段设置为唯一,则可用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 89,147
精华内容 35,658
关键字:

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