我有这个表,我正在创建SQL查询

CREATE TABLE if not exists User (
    id bigint AUTO_INCREMENT,
    coins bigint not null,
    level bigint not null,
    country VARCHAR(128),
    PRIMARY KEY (id)
);

我想插入300万个条目

硬币是0—99999之间的随机数

1—100之间的随机数

其中国家是列表中5个国家中的随机国家

INSERT INTO User (coins, level, country)
SELECT
    FLOOR(RAND() * 100000) AS coins,
    FLOOR(RAND() * 100 + 1) AS level,
    countries.country AS country
FROM
    (SELECT "SPAIN" AS country UNION SELECT "FRANCE" UNION SELECT "UK" UNION SELECT "USA" UNION SELECT "GERMANY") countries
ORDER BY RAND()
LIMIT 3000000;

但当我得到这个的时候,我只得到了5个字.每个国家增加1个.我该怎么解决这个问题?

推荐答案

INSERT INTO User (coins, level, country)
WITH RECURSIVE
  cte (id) AS (SELECT 1 UNION ALL SELECT id + 1 FROM cte LIMIT 3000000)
SELECT
    FLOOR(RAND() * 100000) AS coins,
    FLOOR(RAND() * 100 + 1) AS level,
    ELT(RAND() * 4 + 1, "SPAIN", "FRANCE", "UK", "USA", "GERMANY")
FROM cte;

fiddle

Mysql相关问答推荐

正则表达式转换为MYSQL格式

如何有效地计算共同的朋友/追随者?

MySQL:统计单词在单元格中出现的次数,并将数字放在bra中单词的旁边

如何为Oracle DB查询获得所需的GROUP BY结果?

如何将左联接的小计/总计行中的所有列作废

为什么MySQL派生条件下推优化不起作用

如何在 MySQL 中对同一个表的多个列进行 INNER JOIN

获取最大登录应用程序用户数以及何时

在 .NET 6 中使用 Dapper Framework 未能成功连接到 MySql

带有 JOIN 和 WHERE 子句的 INSERT 语句

为大表优化 Django 模型

Travis 构建失败并出现错误 LOAD DATA LOCAL INFILE 文件请求因访问限制而被拒绝

在 MYSQL 8 中的 JSON 字段上的 SELECT 中返回所有键及其数组项

从 MySQL WordPress Select 最后一行

使用索引进行查询优化

MySQL - 如何查询涉及前面计算值的表结果

根据单个日期字段获取范围/天数

MySQL 中的 VARCHAR(255) 和 TINYTEXT 字符串类型有什么区别?

从 MySQL JSON 数据类型中提取不带引号的值

MySQL 的最大并发连接数