Ich fand es ziemlich schwierig, eine Reihe von Zahlen als Zeilen zu erreichen MySQL.
Zum Beispiel wird der Bereich 1-5 erreicht durch:
SELECT 1
UNION
SELECT 2
UNION
SELECT 3
UNION
SELECT 4
UNION
SELECT 5
wird darin enden, dass:
1 2 3 4 5
Für 0-99 kann ich zwei 0-9-Tische kreuzen:
CREATE TABLE nums as
SELECT 0 as num
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
;
Select n.num*10+nums.num v
From nums n cross join nums
Ich bin es leid, all diese UNIONs zu schreiben und nach einer Möglichkeit zu suchen, den Code zu verkleinern.
Irgendwelche Ideen, wie man in MySQL oder einer anderen SQL-Syntax Golf spielt (zum Beispiel im Bereich von 0-1.000.000)?
Zusätzliche Punkte werden vergeben für:
- einzelne Aussage
- keine Prozeduren
- keine Variablen
- keine DDL-Anweisungen
- nur DQL-Anweisungen
generate_series(). Wir haben hier einige Anwendungsbeispiele .