首页 > 解决方案 > 生成一百万个随机数,但长度为 4

问题描述

有什么方法可以生成 0-9999 之间长度为 4 的 100 万个随机数?然后我必须将它们存储在 MySql DB 中,我使用的语言是 Java。

标签: mysqlrandom

解决方案


MySQL(不包括 MariaDB)似乎不支持任何内置的序列生成功能。鉴于您使用的是 Java,我实际上可能会在那里处理您的问题。

如果你想要一个 MySQL 解决方案,那么这里是一个选项。我们可以使用带有交叉连接的数字表/CTE 生成长度为 100 万的动态序列。如果您使用的是 < MySQL 8,则只需将 CTE 替换为内联表。

WITH digits AS (
    SELECT 0 AS digit UNION ALL 
    SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL
    SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL
    SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9        
)

INSERT INTO rand_table (val)
SELECT RAND()*10000
FROM digits d1
CROSS JOIN digits d2
CROSS JOIN digits d3
CROSS JOIN digits d4
CROSS JOIN digits d5
CROSS JOIN digits d6;

推荐阅读