gpt4 book ai didi

mysql - 在 MySQL 给定条件下生成所有可能的唯一和随机值

转载 作者:行者123 更新时间:2023-11-29 15:43:38 24 4
gpt4 key购买 nike

我正在做项目。有人在瓶盖下发送代码。我想为其生成 100 万个唯一代码。前 3 个索引应为大写字母,后 2 个应为数字。实际上我想要所有的值,即 26*26*26*10*10

我尝试了下面的代码,但它给了我非唯一的值。我数数的时候看到了。

DELIMITER $$  
CREATE PROCEDURE randomizer()
BEGIN
DECLARE i INT DEFAULT 0 ;
DECLARE random CHAR(20) ;
myloop: loop
SET random=CONCAT(
CHAR(round(rand()*25)+65),
CHAR(round(rand()*25)+65),
CHAR(round(rand()*25)+65),
(round(rand()*25)+65)
);
INSERT INTO `passwords` (`pass`) VALUES (i+1,random) ;
SET i=i+1;
IF i=1757600‬ THEN
LEAVE myloop;
END IF;
END LOOP myloop;
END $$
DELIMITER;

我尝试使列成为唯一键,但它显示错误:1136 - 列计数与第 1 行的值计数不匹配。在我的代码中,它生成代码,但它们都不唯一。

最佳答案

我在评论中提到,交叉连接/笛卡尔积将是一种更有效的方法。我认为像下面这样的东西就可以解决问题:

CREATE TABLE alpha (bet char(1));
CREATE TABLE numbers (num tinyint);
INSERT INTO alpha VALUES
('A'),
('B'),
('C'),
('D'),
('E'),
('F'),
('G'),
('H'),
('I'),
('J'),
('K'),
('L'),
('M'),
('N'),
('O'),
('P'),
('Q'),
('R'),
('S'),
('T'),
('U'),
('V'),
('W'),
('X'),
('Y'),
('Z');


INSERT INTO numbers VALUES
(0),
(1),
(2),
(3),
(4),
(5),
(6),
(7),
(8),
(9);

SELECT CONCAT(t1.bet,t2.bet,t3.bet,t4.num,t5.num)
FROM alpha t1, alpha t2, alpha t3, numbers t4, numbers t5;

关于mysql - 在 MySQL 给定条件下生成所有可能的唯一和随机值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57315648/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com