有没有一种方法可以生成可以在JOIN中使用的任意数量的行,类似于Oracle语法:
SELECT LEVEL FROM DUAL CONNECT BY LEVEL<=10
讨厌这样说,但是这MySQL是RDBMS四大公司中唯一没有此功能的公司。
MySQL
RDBMS
在Oracle:
Oracle
SELECT * FROM dual CONNECT BY level < n
在MS SQL(最多100行)中:
MS SQL
100
WITH hier(row) AS ( SELECT 1 UNION ALL SELECT row + 1 FROM hier WHERE row < n ) SELECT * FROM hier
或使用提示最多 32768
32768
WITH hier(row) AS ( SELECT 1 UNION ALL SELECT row + 1 FROM hier WHERE row < 32768 ) SELECT * FROM hier OPTION (MAXRECURSION 32767) -- 32767 is the maximum value of the hint
在PostgreSQL:
PostgreSQL
SELECT * FROM generate_series (1, n)
在中MySQL,什么都没有。