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

Форум MySQL

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

 

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

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

тема: Найти последний id по условию
 
 автор: oliss   (23.09.2010 в 17:28)   письмо автору
 
 

Найти ID (автоинкремент ) при условии

что он последний внесённый в таблицу
и значение столбца xxx в этой строке не NOT NULL

  Ответить  
 
 автор: Trianon   (23.09.2010 в 17:35)   письмо автору
 
   для: oliss   (23.09.2010 в 17:28)
 

последний - в смысле - наибольший?
А в чем тогда проблема?

  Ответить  
 
 автор: oliss   (23.09.2010 в 21:45)   письмо автору
 
   для: Trianon   (23.09.2010 в 17:35)
 

Проблема в непонимании ,как составить условие ..эти дыры в автоинкрементном поле не есть гуд (конечно они подсознательно безразмерны ) но хочется,что то большего в этой жизни (сорри за оффтоп)

т.е. найти (не в пределах сессии коннекта с БД ) последний ID (не пустой [ в смысле не плодить пустые строки ] ) и вставить в него (следующий не пустой по счёту ID) запись...

понятно ,что автоинкрементное поле безгранично(в смысле бренности ПО) ,но хочется (для себя) хоть ко кого-то разумного порядка:)))

  Ответить  
 
 автор: Trianon   (23.09.2010 в 22:09)   письмо автору
 
   для: oliss   (23.09.2010 в 21:45)
 

по сути сформулированного ответил Neadekvat.
Но меня пугает Ваше "дыры в автоинкрементном поле"
если это поле - первичный ключ, то ни о каком заклеивании дыр не моет идти речи.
Первичный ключ не должен использоваться повторно. Это сгораемый ресурс.

  Ответить  
 
 автор: neadekvat   (23.09.2010 в 22:00)   письмо автору
 
   для: oliss   (23.09.2010 в 17:28)
 

Пишу очевидное решение:
SELECT MAX(id) as id FROM tbl WHERE xxx IS NOT NULL

А теперь я надеюсь на опровержение и слова о том, что я не так понял.
Особенно ваш пост от 23.09.2010 в 21:45 - просто вынос мозга из-за кучи "пояснений".

  Ответить  
 
 автор: oliss   (24.09.2010 в 09:39)   письмо автору
 
   для: neadekvat   (23.09.2010 в 22:00)
 

MAX(id) выбирает, но условие IS NOT NULL не выполняется
те считает ту строку где поле xxx пустое ( NOT NULL )

  Ответить  
 
 автор: Trianon   (24.09.2010 в 15:34)   письмо автору
 
   для: oliss   (24.09.2010 в 09:39)
 

чой-та я не понял.
так мож наоборот
SELECT MAX(id) as id FROM tbl WHERE xxx IS NULL

  Ответить  
 
 автор: ronin80   (24.09.2010 в 15:55)   письмо автору
 
   для: oliss   (24.09.2010 в 09:39)
 

> те считает ту строку где поле xxx пустое ( NOT NULL )

NULL - значение не определено, но например для текстового поля значение '' не является NULL, но оно пустое, может это ваш случай?

NULL в Системах управления базами данных (СУБД) — специальное значение (псевдозначение), которое может быть записано в поле таблицы базы данных (БД). NULL соответствует понятию «пустое поле», то есть «поле, не содержащее никакого значения». Введено для того, чтобы различать в полях БД пустые (визуально не отображаемые) значения (например, строку нулевой длины) и отсутствующие значения (когда в поле не записано вообще никакого значения, даже пустого).

  Ответить  
Rambler's Top100
вверх

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