一定要随机5位吗?看你的表设计,应该是uid和userid都是主键吧~如果主键的话,保存入数据库的时候,主键就不用存了,中只要保存非主键的字段即可,数据库中主键会自增1的,绝对不会相同,本人觉得这样设计更适全数据库。如果你非要随机5位也可以,用rand()函数可以生成随机码,select count(uid) from abc where uid=随机5位,然后判断读出来的记录数是否大于0,大于即已存在。
Select Top 5 From 表名 Order By NEWID() , newid 产生的新的值是不固定的 。在Select表里的数据的NEWID() 函数时候 随即选出N条记录 。希望能够帮助你 。
代码如下:
--创建测试表
CREATE TABLE [Identity](
Id INT IDENTITY(1,2) NOT NULL PRIMARY KEY,--种子的起始值1,步长2
Number VARCHAR(20) UNIQUE NOT NULL,
Name VARCHAR(20) NOT NULL,
Password VARCHAR(20) DEFAULT(123),
Description VARCHAR(40) NULL
)
--插入记录
INSERT INTO [Identity](Number,Name,Description) VALUES('001','1st','Id=1,因为起始值1')
INSERT INTO [Identity](Number,Name,Description) VALUES('002','2nd','Id=3,因为起始值1,步长2')
INSERT INTO [Identity](Number,Name,Description) VALUES('003','3rd','Id=5,由于字符长度超长,报错插入失败,造成此Id产生后被放弃')
INSERT INTO [Identity](Number,Name,Description) VALUES('004','4th','Id=7 not 5,因为第三条记录插入失败')
--检索记录,查看结果
SELECT FROM [Identity]
写个循环语句,每次随机一个信息存入一个随机数据表内,在设一个计数,计数控制在200以内,每随机一条数据并将随机的数据与随机数据表里之前的数据比对无重复的即+1,计数如果在200以内继续循环。。。、
不好意思 语句我早就忘了,但我这样想的希望可以解决你的问题
两个办法:
一、在数据库里写个存储过程,直接生成随机数并插入。
二、不要单独生成随机数,建立一个主键为UUID(标准40位ID)的表,然后插入5万条空行,每一行的UUID字段,就是一个随机数,如果你只想要数字不要字符串的,用的时候再把UUID通过相应的算法转换成随机数字,很简单,插入速度也最快。
以上就是关于随机生成5位数字,并写入PHP数据库里全部的内容,包括:随机生成5位数字,并写入PHP数据库里、sql2005怎么随机抽取表中的5条数据、怎样用SQL向数据库中批量的插入数据,主键是随机生成的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)