2
如何生成字符串'a'
到'zzz'
然后使用MySQL将它们保存到表中?如何生成字符串'a'..'zzz'然后将它们保存到表格中?
如何生成字符串'a'
到'zzz'
然后使用MySQL将它们保存到表中?如何生成字符串'a'..'zzz'然后将它们保存到表格中?
这是一个有点难以从“纯”的MySQL做有两个原因:
在所有的光,该解决方案是这样的:
CREATE TABLE TEMP_CHARS (
C CHAR PRIMARY KEY
);
INSERT INTO TEMP_CHARS 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 YOUR_TABLE(YOUR_FIELD)
SELECT C
FROM TEMP_CHARS
UNION ALL
SELECT CONCAT(T1.C, T2.C) -- Generate all variations (with repetition) of length 2.
FROM TEMP_CHARS T1 CROSS JOIN TEMP_CHARS T2
UNION ALL
SELECT CONCAT(T1.C, T2.C, T3.C) -- Generate all variations (with repetition) of length 3.
FROM TEMP_CHARS T1 CROSS JOIN TEMP_CHARS T2 CROSS JOIN TEMP_CHARS T3;
DROP TABLE TEMP_CHARS;
是很容易的,如果你知道加入=笛卡尔积,
以下(另一种版本使用用户定义的功能@Branko Dimitrijevic),
你可以把到一个文本文件(join.sql): -
create table abc (a char(3));
create table a (a char(1));
insert into a values ('a','b' ..., 'z');
insert into abc select a from a;
insert into abc
select concat(a.a, b.a) from a
join a as b;
insert into abc
select concat(a.a, b.a, c.a) from a
join a as b
join a as c;
和管道到MySQL
mysql -u xxx -h xxx < join.sql
为什么你想要一个数据库来做到这一点。数据库是关于存储信息的。什么是真正的问题 - 即为什么你想/需要这样做。 –
您是否真的需要阿尔法编号 - 您知道只有17576个可能与3个小写字母小写的钥匙可能是唯一的编号? –