powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Заполнение ранее удалённых id
15 сообщений из 40, страница 2 из 2
Заполнение ранее удалённых id
    #36229382
telal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне кажется, что этот запрос выводить только числа, промежутки которых составляют только единицу.

Скажем, если числа 1, 2, 3, 5, 6, 8, то он выведет 4 и 7

А если 1, 5, 9, 103, то он ни чего не выведет
...
Рейтинг: 0 / 0
Заполнение ранее удалённых id
    #36229396
telal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Думаю, этот запрос отобразит, к примеру,

в последовательности 1,2, 4, 6, 7, 9 числа 1,3,5,8

а в последовательности 1, 2, 7, 15, 16, 28, только 3, 8, 17, а не все промежутки
...
Рейтинг: 0 / 0
Заполнение ранее удалённых id
    #36229508
javasoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
telal,

Я так думаю, что вашему клиенту до фонаря что это будет за id. Может вам поможет просто вывод нумерации строк. Вот как тут описано
...
Рейтинг: 0 / 0
Заполнение ранее удалённых id
    #36229548
telal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javasoft,

Не, нумеровать мне не надо, мне нужно найти отсутствующие числа в последовательно
...
Рейтинг: 0 / 0
Заполнение ранее удалённых id
    #36229903
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
telal,

Вы пропустили мой пост выше с линком?

...............
3. найти пробел в списке:
/topic/585423

Там как минимум 2-3 рабочих варианта.....
...
Рейтинг: 0 / 0
Заполнение ранее удалённых id
    #36230112
telal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javajdbc,

Я не пропустил,

одна задачка находит промежутки в последовательности:

к примеру: 1, 2, 5, 8, 15 находит только 3,6,9

А мне нужно найти 3,4,6,7,9,10,11,12,13,14

Вы видите разницу в результате?
...
Рейтинг: 0 / 0
Заполнение ранее удалённых id
    #36230194
MAPA3OT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем вам находить все последовательности, если дальнейшая работа всё равно будет идти не в БД, а в сторонней программе, кмк, задачу можно свести к нахождению интервалов, а потом уже ласково инсертить по ним.
...
Рейтинг: 0 / 0
Заполнение ранее удалённых id
    #36230198
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAPA3OTО, вернулась, пропащая душа :)
А я уж призадумался, куда MAPA3OT делся...

P.S. Прошу прощения за оффтопик.
...
Рейтинг: 0 / 0
Заполнение ранее удалённых id
    #36230213
MAPA3OT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интервал можно найти например так:
типа код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
select b+ 1 ,c- 1  from
(
	select t1.a b, min(t2.a)c from
		(
			select  1  a union all
			select  3  a union all
			select  4  a union all
			select  9  a union all
			select  12  a union all
			select  45  a
			) t1 left join
		(
			select  1  a union all
			select  3  a union all
			select  4  a union all
			select  9  a union all
			select  12  a union all
			select  45  a
		) t2 on

miksoft, слухи о мой кончине сильно приувеличины
...
Рейтинг: 0 / 0
Заполнение ранее удалённых id
    #36230227
MAPA3OT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обкосячился :(
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
select b+ 1 ,c- 1  from
(
	select t1.a b, min(t2.a)c from
		(
			select  1  a union all
			select  3  a union all
			select  4  a union all
			select  9  a union all
			select  12  a union all
			select  45  a
			) t1 left join
		(
			select  1  a union all
			select  3  a union all
			select  4  a union all
			select  9  a union all
			select  12  a union all
			select  45  a
		) t2 on
	t1.a<t2.a
	group by t1.a
) t
where c is not null and c-b> 1  
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Заполнение ранее удалённых id
    #39423750
Terrychan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javajdbc, легче будет сделать такой код как у меня проверяющий пропущенные id.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
$sqlite = new SQLite3('news.sqlite3');
$result = $sqlite->query('SELECT `id` FROM `users`');
$realid=1;
while ($row = $result->fetchArray(SQLITE3_ASSOC))  {
$oldid=$row['id'];
if ($oldid!=$realid) {
    $sqlite->exec("UPDATE `users` SET `id` = $realid WHERE `id` = $oldid");
} else {
    echo '';
}


Так вы не потеряете порядок)
...
Рейтинг: 0 / 0
Заполнение ранее удалённых id
    #39423837
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Terrychan,
на даты постов посмотри :)
...
Рейтинг: 0 / 0
Заполнение ранее удалённых id
    #39424232
Terrychan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя,
Мдааа чет они давно создали.... Ну я опоздал но мой вариант ответа вроде правилен
...
Рейтинг: 0 / 0
Заполнение ранее удалённых id
    #39425230
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TerrychanТак вы не потеряете порядок)Как раз-таки потеряете. Сортировки нету.
...
Рейтинг: 0 / 0
Заполнение ранее удалённых id
    #39425369
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Terrychan,
если пишешь решение в этой ветке - то лучше выкладывать его на чичтом sql , а не на смеси.
при хорошем количестве записей твой вариант положит систему в глубокий даун.
...
Рейтинг: 0 / 0
15 сообщений из 40, страница 2 из 2
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Заполнение ранее удалённых id
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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