Me resultó bastante difícil lograr un rango de números en filas MySQL
.
Por ejemplo, el rango 1-5 se logra mediante:
SELECT 1
UNION
SELECT 2
UNION
SELECT 3
UNION
SELECT 4
UNION
SELECT 5
resultará en:
1 2 3 4 5
para 0-99 puedo unir dos tablas de 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
Estoy cansado de escribir todos estos UNION
correos electrónicos y buscar una forma de reducir el código.
¿Alguna idea de cómo jugar golf (por ejemplo, rango de 0-1,000,000) en MySQL o cualquier sintaxis SQL?
Se otorgan puntos adicionales por:
- declaración única
- sin procedimientos
- sin variables
- sin declaraciones DDL
- solo sentencias DQL
generate_series()
. Tenemos un par de ejemplos de uso. aquí.