在mysql 数据库如何添加随机数字

在mysql 数据库如何添加随机数字,第1张

在mysql中随机生成一些范围内的整数,可以借助mysql提供的二个函数来实现。

它们是floor()与rand()函数,下面分别介绍下。

1、floor(f)

返回一个不大于f的最大整数

2、rand(),rand(n)

返回一个随机浮点值 v ,范围在 0 到1 之间 (即, 其范围为 0 ≤ v ≤ 1.0)。若已指定一个整数参数 N ,则它被用作种子值,用来产生重复序列。

若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1))。

例如, 在7到 12 的范围(包括7和12)内得到一个随机整数,使用语句:

SELECT FLOOR(7 + (RAND() * 6))

access中产生随机数用rnd函数。

如:

select  rnd()

执行结果:

说明:

rnd() 产生一个大于等于0 且小于 1的随机数,如果要产生[m,n]中随机的整数公式:int((n-m+1)*rnd)+m

int(rnd()*1000)表达式产生大于0,小于1000的整数

int(rnd()*900)+100表达式产生大于100,小于1000的整数

-- 只插入关键的几列, 其他列就不折腾了.

CREATE TABLE #count_card (

  card_id  INT,

  card_number  varchar(10),

  card_pass    varchar(20)

)

GO

-- 假设插入 10行, 首字母 A

INSERT INTO  #count_card 

SELECT

  t.number,

  'A' + RIGHT( REPLICATE('0', 8) + CAST(t.number as varchar) , 8),

  RIGHT(STR(RAND(t.number + 100*RAND()), 18, 17),12)

FROM 

  master..spt_values t

WHERE

  t.type='P' 

  AND t.number between 1 and 10

GO

  

-- 核对数据.

SELECT * FROM #count_card 

GO

card_id     card_number card_pass

----------- ----------- --------------------

          1 A00000001   894660572885

          2 A00000002   080990285468

          3 A00000003   267319998049

          4 A00000004   453649710632

          5 A00000005   639979423213

          6 A00000006   826309135795

          7 A00000007   012638848378

          8 A00000008   198968560959

          9 A00000009   385298273542

         10 A00000010   571627986123

(10 行受影响)

-- 注: 本查询使用了 master..spt_values 表, 用于获取一个 连续的编号。

-- 但是这个表的行数不多.

-- 这个 表里面,最大支持的数量是:

SELECT 

  MIN(number),  MAX(number)

FROM 

  master..spt_values

WHERE 

  type='P'

----------- -----------

          0        2047

(1 行受影响)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11963470.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存