Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment créer un générateur de lignes dans MySQL ?

Je déteste dire ça, mais MySQL est le seul RDBMS des quatre grands qui n'ont pas cette fonctionnalité.

Dans Oracle :

SELECT  *
FROM    dual
CONNECT BY
        level < n

En MS SQL (jusqu'à 100 lignes):

WITH hier(row) AS
        (
        SELECT  1
        UNION ALL
        SELECT  row + 1
        FROM    hier
        WHERE   row < n
        )
SELECT  *
FROM    hier

ou en utilisant l'indice jusqu'à 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

Dans PostgreSQL :

SELECT  *
FROM    generate_series (1, n)

En MySQL , rien.