Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: MySQL UNIQUE
 
 автор: z0rg   (12.01.2007 в 06:17)   письмо автору
 
 

Вот и у мня возникла задача такая ...
Есть таблица ... в ней поле `lid`
Поле является уникальным (то есть повторения не допускаются)

И так ... поле должно заполнятся не занятой цифрой... то есть

Если есть уже записи с заполненным полем как 1,2,3,4,6,7,8,10 то при вставке чтоб вставилось не занятый ..в данном случае 5.. при следующей 9 ...
Вопрос: есть ли такой запрос или инструкция, а может даже функция PHP (не встречал) чтобы получить имено этот не занятый номер...

Надеюсь понятно изъяснился...
PS привел пример с одним полем.. тк остальные поля не важны просто напросто

Спасибо что прочитали.. жду ваших мнений, решений, гипотез :)

   
 
 автор: Trianon   (12.01.2007 в 09:46)   письмо автору
 
   для: z0rg   (12.01.2007 в 06:17)
 

Чисто теоретически задачу поиска дыр исполняет селект соединения таблицы с собственной копией со сдвигом на единицу.

SELECT min(t1.lid)+1 AS hole 
FROM tab AS t1 
    LEFT JOIN tab AS t2 
      ON t1.lid+1=t2.lid 
      WHERE t2.lid IS NULL 

   
 
 автор: z0rg   (12.01.2007 в 13:26)   письмо автору
 
   для: Trianon   (12.01.2007 в 09:46)
 

ну вот огромное спасибо .... вроде помогло

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования