数据库相关

您所在的位置:网站首页 500个名字不重复 数据库相关

数据库相关

2024-07-04 22:00| 来源: 网络整理| 查看: 265

数据库相关-Mysql生成不重复的随机数(适用于千万行级数据表)

常用的方式有UUID,添加自增序号,或者使用rand()函数产生随机数

RAND()函数:使用RAND()函数可以生成0到1之间的随机浮点数。例如,要生成0到100之间的随机数,可以使用以下查询:

SELECT RAND() * 100;

RAND(N) 函数:使用RAND(N)函数,其中N是一个值,可以生成基于该值的随机数序列。不同的种子种子值将产生不同的随机数序列。

SELECT RAND(SeedValue);

使用FLOOR和RAND()生成整数随机数:如果需要生成整数随机数,可以使用FLOOR和RAND()函数。以下示例生成0到100之间的整数随机数:

SELECT FLOOR(RAND() * 101);

使用UUID()函数:如果需要生成UUID(通用唯一标识符),可以使用UUID()函数。UUID是一个全局唯一的标识符,通常用于数据行的标识。

SELECT UUID();

使用RAND()和ORDER BY生成随机排序:从表中选择随机行,您可以使用RAND()和ORDER BY子句来生成随机排序,并使用LIMIT限制结果的数量。

SELECT * FROM table_name ORDER BY RAND() LIMIT 1;

这些方法可以根据不同的需求生成不同类型的随机数,无论是浮点数、整数、唯一标识符还是随机行,但是都对数据库环境有一定的要求。

考虑到有些实际应用环境不一定是理想环境,数据版本较低或者函数库不完整等情况,这些方式就存在问题,因此可以使用 @rownum 行号信息配合随机数或者当前时间信息生成绝对唯一数

SELECT @rownum:=@rownum+1 AS id FROM tab ,(SELECT @rownum := 0) t

如果需要限制随机数长度,可以引入LPAD函数

SELECT LPAD(@rownum:=@rownum+1, 5, '0') AS id FROM tab ,(SELECT @rownum := 0) t LIMIT 99999;


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3