Trudno mi było osiągnąć zakres liczb w rzędach MySQL
.
Na przykład zakres 1-5 osiąga się poprzez:
SELECT 1
UNION
SELECT 2
UNION
SELECT 3
UNION
SELECT 4
UNION
SELECT 5
spowoduje:
1 2 3 4 5
dla 0-99 mogę połączyć krzyżowo dwie tabele 0-9:
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
Mam dość pisania tych wszystkich UNION
i szukania sposobu na zmniejszenie kodu.
Jakieś pomysły na grę w golfa (na przykład zakres 0–1 000 000) w MySQL lub w dowolnej składni SQL?
Dodatkowe punkty są przyznawane za:
- pojedyncze oświadczenie
- bez procedur
- bez zmiennych
- brak instrukcji DDL
- tylko instrukcje DQL
generate_series()
. Mamy tutaj kilka przykładów użycia .