Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Найти все ID от 1 до 10, которые свободны / 4 сообщений из 4, страница 1 из 1
09.11.2015, 15:16:01
    #39098503
DeeZ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти все ID от 1 до 10, которые свободны
Есть таблица с ID, например ids:
id579
Нужно найти все ID от 1 до 10, которые свободны. Что то типа:
Код: sql
1.
2.
3.
select i 
from (for i in {1..10} echo $i)
where i not in (select id from ids)


Желательно без функций. Как то можно такое сделать?
...
Рейтинг: 0 / 0
09.11.2015, 15:26:36
    #39098529
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти все ID от 1 до 10, которые свободны
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
SELECT t1.id
FROM
 (SELECT 1 id
    UNION ALL
  SELECT 2
    UNION ALL
  SELECT 3
    UNION ALL
  SELECT 4
    UNION ALL
  SELECT 5
    UNION ALL
  SELECT 6
    UNION ALL
  SELECT 7
    UNION ALL
  SELECT 8
    UNION ALL
  SELECT 9
    UNION ALL
  SELECT 10) t1
LEFT JOIN ids ON t1.id=ids.id
WHERE ids.id IS NULL
...
Рейтинг: 0 / 0
09.11.2015, 15:30:51
    #39098537
DeeZ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти все ID от 1 до 10, которые свободны
miksoft,

на деле id нужно выбрать из диапазона 1..5000.
Уж проще создать таблицу чем писать такое..
...
Рейтинг: 0 / 0
09.11.2015, 15:42:31
    #39098561
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти все ID от 1 до 10, которые свободны
DeeZна деле id нужно выбрать из диапазона 1..5000.Да нет проблем!
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
SELECT tt.id
FROM
 (SELECT t1.id*1000+t2.id*100+t3.id*10+t4.id+1 id FROM
 (SELECT 0 id
    UNION ALL
  SELECT 1
    UNION ALL
  SELECT 2
    UNION ALL
  SELECT 3
    UNION ALL
  SELECT 4) t1,
 (SELECT 0 id
    UNION ALL
  SELECT 1
    UNION ALL
  SELECT 2
    UNION ALL
  SELECT 3
    UNION ALL
  SELECT 4
    UNION ALL
  SELECT 5
    UNION ALL
  SELECT 6
    UNION ALL
  SELECT 7
    UNION ALL
  SELECT 8
    UNION ALL
  SELECT 9) t2,
 (SELECT 0 id
    UNION ALL
  SELECT 1
    UNION ALL
  SELECT 2
    UNION ALL
  SELECT 3
    UNION ALL
  SELECT 4
    UNION ALL
  SELECT 5
    UNION ALL
  SELECT 6
    UNION ALL
  SELECT 7
    UNION ALL
  SELECT 8
    UNION ALL
  SELECT 9) t3,
 (SELECT 0 id
    UNION ALL
  SELECT 1
    UNION ALL
  SELECT 2
    UNION ALL
  SELECT 3
    UNION ALL
  SELECT 4
    UNION ALL
  SELECT 5
    UNION ALL
  SELECT 6
    UNION ALL
  SELECT 7
    UNION ALL
  SELECT 8
    UNION ALL
  SELECT 9) t4
) tt
LEFT JOIN ids ON tt.id=ids.id
WHERE ids.id IS NULL



А вообще для генерации номеров можно использовать любую таблицу, в которой гарантированно есть нужно количество записей.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Найти все ID от 1 до 10, которые свободны / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]