如何在MySQL中插入xxxxx个数的所有排列?
How to insert all the permutations of xxxxx number in MySQL?
我有一个 table 叫 "numbers"
id (int, 自增)
数字(可变字符)
如何插入包含 5 位数字 [0-9] 的数字的所有排列?
00000
00001
00002
...
99999
LPAD(str,len,padstr)
- Returns 字符串 str,用字符串 padstr 左填充到 len 个字符的长度。如果 str 比 len 长,return 值将缩短为 len 个字符。
mysql> SELECT LPAD('hi',4,'??');
-> '??hi'
mysql> SELECT LPAD(123, 5,'0');
-> 00123
MySQL 文档。 12.5 字符串函数function LPAD
这是一个 select 语句,生成从 0
到 99999
的数字,包括 0
左填充。然后,您可以将其与 INSERT
语句一起使用,一次性将它们插入到您想要的位置。
SELECT LPAD(F.t*10000+E.num3,5,'0') num FROM
(
SELECT 100*num1+num2 num3
FROM (
SELECT t*10+u num1
FROM
(SELECT 0 t UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) A,
(SELECT 0 u UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) B
) C,
(
SELECT t*10+u num2
FROM
(SELECT 0 t UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) A,
(SELECT 0 u UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) B
) D
) E,
(SELECT 0 t UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) F
ORDER BY num
输出为:
+-------+
| num |
+-------+
| 00000 |
| 00001 |
| 00002 |
| ... |
| 99999 |
+-------+
我有一个 table 叫 "numbers"
id (int, 自增)
数字(可变字符)
如何插入包含 5 位数字 [0-9] 的数字的所有排列?
00000 00001 00002 ... 99999
LPAD(str,len,padstr)
- Returns 字符串 str,用字符串 padstr 左填充到 len 个字符的长度。如果 str 比 len 长,return 值将缩短为 len 个字符。
mysql> SELECT LPAD('hi',4,'??');
-> '??hi'
mysql> SELECT LPAD(123, 5,'0');
-> 00123
MySQL 文档。 12.5 字符串函数function LPAD
这是一个 select 语句,生成从 0
到 99999
的数字,包括 0
左填充。然后,您可以将其与 INSERT
语句一起使用,一次性将它们插入到您想要的位置。
SELECT LPAD(F.t*10000+E.num3,5,'0') num FROM
(
SELECT 100*num1+num2 num3
FROM (
SELECT t*10+u num1
FROM
(SELECT 0 t UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) A,
(SELECT 0 u UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) B
) C,
(
SELECT t*10+u num2
FROM
(SELECT 0 t UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) A,
(SELECT 0 u UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) B
) D
) E,
(SELECT 0 t UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) F
ORDER BY num
输出为:
+-------+
| num |
+-------+
| 00000 |
| 00001 |
| 00002 |
| ... |
| 99999 |
+-------+