
说下思路:
1 将生成的数字保存到mysql数据库,然后每次生成的号码不能与数据库的数字重复,请问怎么弄?
先读取数据库已存在的数字,将结果以数组格式,与rand(1,1000)的数组相比较计算差集,去除这部分数字(array_diff),再shuffle,得到新的随机数。
我觉得,你完全可以建立一个序号表,比如,1-1000,每次用时先用随机函数取(1-数据记录数)个数值,再用这个数值取得相应的记录,当取出之后,删除这个记录,这样保证记录总数一直会减少且数字也不会重复。
2 有没有什么办法生成的时候先生成一位数的,一位数生成满了以后再生出两位数的,两位数满了然后再三位数的,以此类推?
先获取一位数的记录,再从中随机抽取一个,如果数据库中没有找到一位数的,就递增一位数,直到找到为止。
3 代码的执行效率希望能越高越好!
如果想要代码执行效率,最好尽量减少与数据库的交互。
1、创建测试表,
create table test_dis(id number, name varchar2(20), value number(10));
2、插入测试数据
insert into test_dis values(1,'a',123);
insert into test_dis values(2,'b',152);
insert into test_dis values(3,'c',123);
insert into test_dis values(4,'d',520);
insert into test_dis values(5,'e',300);
commit;
3、查询表中全量数据,select t, rowid from test_dis t;
4、编写sql,查询表中某一字段不重复的所有数据,可以发现只有id为2,4,5的记录查询出。
select from test_dis t where value in (select value from test_dis group by value having count()=1);
String name = xx(这里写你获取到的准备插入的name的值)
select name from (这里写你的表名) where name = xx;
ResustSet rs = (执行上句话生成结果集)
if(rsnext()){ (这里写发现重复时的 *** 作)
]
else{ (这里写正式的插入语句)
}
sql语句要select某字段不重复数据的步骤如下:
我们需要准备的材料分别是:电脑、sql查询器。
1、首先,打开sql查询器,连接上要查询的数据库表,例如test2表。
2、点击“查询”按钮,输入:select A,B,C from test2 group by A;。
3、点击“运行”按钮,这时字段A会以不重复的形式被查询出所有数据。
以上就是关于php随机生成数据库中不存在的且不重复数字,在线等!!!!!全部的内容,包括:php随机生成数据库中不存在的且不重复数字,在线等!!!!!、SQL 查询表中某一字段不重复的所有数据、向数据库插入的数据不重复,如何用Java做验证等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)