DROP TABLE IF EXISTS `t`;
CREATE TABLE `t` ( `id` int(11) NOT NULL auto_increment, PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`), KEY `indx` (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;
## Data for the `t` table (LIMIT 0,500)#
INSERT INTO `t` (`id`) VALUES (1), (2), (3), (7), (8), (10), (12), (13), (15), (19);
COMMIT;
SELECT `outer`.`id`, MIN(`inner`.`id`) FROM `t` `outer` INNER JOIN `t` `inner` ON `outer`.`id` < `inner`.`id` WHERE NOT EXISTS ( SELECT * FROM `t` `inner` WHERE `inner`.`id` = `outer`.`id` + 1 ) GROUP BY `outer`.`id`
+—-+——————-+| id | MIN(`inner`.`id`) |+—-+——————-+| 3 | 7 || 8 | 10 || 10 | 12 || 13 | 15 || 15 | 19 |+—-+——————-+5 rows in set (0.00 sec)
ps: про пропуски в автоинкрементных полях с тобой категорически не согласен – не считаю что этот самый “пропуск” может играть какую либо роль для приложенияpps: с датами тоже увы ничего _практического_ придумать не могу ;( выручай [smile ;)]ppps: http://community.livejournal.com/ru_mysql/profile (не сочтите за рекламу)pppps: было бы очень интересно увидеть твоё решение либо решение тех, кто имелся ввиду “Правда те, для кого она имеет такой смысл наверняка ее решали”
Copyright ©