2011-11-27 23 views
2

如何生成字符串'a''zzz'然後使用MySQL將它們保存到表中?如何生成字符串'a'..'zzz'然後將它們保存到表格中?

+4

爲什麼你想要一個數據庫來做到這一點。數據庫是關於存儲信息的。什麼是真正的問題 - 即爲什麼你想/需要這樣做。 –

+0

您是否真的需要阿爾法編號 - 您知道只有17576個可能與3個小寫字母小寫的鑰匙可能是唯一的編號? –

回答

2

這是一個有點難以從「純」的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; 
0

是很容易的,如果你知道加入=笛卡爾積,
以下(另一種版本使用用戶定義的功能@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 
相關問題