Мені було досить важко досягти діапазону чисел, як рядки MySQL
.
Наприклад, діапазон 1-5 досягається за рахунок:
SELECT 1
UNION
SELECT 2
UNION
SELECT 3
UNION
SELECT 4
UNION
SELECT 5
це призведе до:
1 2 3 4 5
для 0-99 я можу перехрестити приєднатися до двох таблиць 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
Я втомився писати всі ці UNION
і шукаю спосіб зменшити код.
Будь-які ідеї, як гольфувати його (наприклад, діапазон 0-1000000) у MySQL чи будь-якому синтаксисі SQL?
Додаткові бали надаються за:
- єдине твердження
- ніяких процедур
- немає змінних
- немає заяв DDL
- лише оператори DQL
generate_series()
. У нас є кілька прикладів використання тут.