Anscheinend wollen Sie ein dummy rowset
.
In MySQL
, ohne einen Tisch geht es nicht.
Die meisten großen Systeme bieten eine Möglichkeit, dies zu tun:
-
In
Oracle
:SELECT level FROM dual CONNECT BY level <= 10
-
In
SQL Server
:WITH q AS ( SELECT 1 AS num UNION ALL SELECT num + 1 FROM q WHERE num < 10 ) SELECT * FROM q
-
In
PostgreSQL
:SELECT num FROM generate_series(1, 10) num
MySQL
fehlt so etwas und das ist ein schwerwiegender Nachteil.
Ich habe ein einfaches Skript geschrieben, um Testdaten für die Beispieltabellen in meinen Blogbeiträgen zu generieren, vielleicht ist es von Nutzen:
CREATE TABLE filler (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT
) ENGINE=Memory;
CREATE PROCEDURE prc_filler(cnt INT)
BEGIN
DECLARE _cnt INT;
SET _cnt = 1;
WHILE _cnt <= cnt DO
INSERT
INTO filler
SELECT _cnt;
SET _cnt = _cnt + 1;
END WHILE;
END
$$
Sie rufen die Prozedur auf und die Tabelle wird mit den Zahlen gefüllt.
Sie können es während der Sitzungsdauer wiederverwenden.