mysql - 生成一百万个随机数,但长度为 4
问题描述
有什么方法可以生成 0-9999 之间长度为 4 的 100 万个随机数?然后我必须将它们存储在 MySql DB 中,我使用的语言是 Java。
解决方案
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;
推荐阅读
- sql-server - 更改 ANSI 填充
- numpy - 当我认为它应该时,numpy 广播不起作用?
- yaml - YAML 特殊字符
- python - 为什么经常使用元组而不是字典?
- php - 在多个表上带有 LIKE 的 WHERE 子句
- arrays - 如何在 C 中读出 #define 宏?
- vba - 在 MS Word 中包含 VBA RegEx 搜索中的所有故事
- javascript - locomotive.js 平滑滚动错误的视口高度
- python - QuantLib-SWIG-1.19 python '来自 . 导入 _QuantLib' 失败
- android - 如何在 android java 中使用 Dagger2 将 SharedPreferences 注入 ViewModel