MySQL 中的随机数

前言

在 MySQL 中,可以有如下几种途径实现唯一值:

  • 自增序列
  • UUID() 函数
  • 程序自定义

UUID

UUID代表通用唯一标识符。UUID是基于RFC 4122定义的。UUID被设计为在空间和时间全球独一无二的数字,由 32 位小写的 16 进制数字组成。

在 mysql 中有一个 UUID()函数可生成一个 UUID值并以varchar(36)类型返回,

如: 85fd1d99-703f-4652-a51f-d95f7ec79032

replace 函数:

默认生成的 UUID 含有 -,我们可以使用此函数替换掉,SQL 如下:

SELECT REPLACE(UUID(),"-","");

指定长度随机数字

因为存在重复的可能。随机数的位数越少,重复的概率越大。所以这种方式只能在特殊场合有些作用。

rand 函数:

此函数可以生成 01之间的随机小数,乘以5即可得到1-5的随机数。所以我们可以在后加上如 * + 生成更大范围的值

SELECT RAND() ,RAND()*100;
# 如:0.7350889898232081
# 如:23.517869248537224

取整函数:

向上取整:CEILING()

向下取整:FLOOR()

# 生成 3 位随机整数
SELECT CEILING(RAND()*900+100);
# 生成 4 位的随机整数
SELECT CEILING(RAND()*9000+1000);
# 生成 500 - 1000 之间的随机整数
SELECT FLOOR(500 + RAND() * (1000 - 500))

MD5 函数

# 使用 md5 函数产生 32 位随机字符串
SELECT MD5(RAND() * 10000)
# 如:7eb14a87fc16e2c43a128842162a66ae

添加新评论

还没有评论哟 ~