|
|
|
| Найти ID (автоинкремент ) при условии
что он последний внесённый в таблицу
и значение столбца xxx в этой строке не NOT NULL | |
|
|
|
|
|
|
|
для: oliss
(23.09.2010 в 17:28)
| | последний - в смысле - наибольший?
А в чем тогда проблема? | |
|
|
|
|
|
|
|
для: Trianon
(23.09.2010 в 17:35)
| | Проблема в непонимании ,как составить условие ..эти дыры в автоинкрементном поле не есть гуд (конечно они подсознательно безразмерны ) но хочется,что то большего в этой жизни (сорри за оффтоп)
т.е. найти (не в пределах сессии коннекта с БД ) последний ID (не пустой [ в смысле не плодить пустые строки ] ) и вставить в него (следующий не пустой по счёту ID) запись...
понятно ,что автоинкрементное поле безгранично(в смысле бренности ПО) ,но хочется (для себя) хоть ко кого-то разумного порядка:))) | |
|
|
|
|
|
|
|
для: oliss
(23.09.2010 в 21:45)
| | по сути сформулированного ответил Neadekvat.
Но меня пугает Ваше "дыры в автоинкрементном поле"
если это поле - первичный ключ, то ни о каком заклеивании дыр не моет идти речи.
Первичный ключ не должен использоваться повторно. Это сгораемый ресурс. | |
|
|
|
|
|
|
|
для: oliss
(23.09.2010 в 17:28)
| | Пишу очевидное решение:
SELECT MAX(id) as id FROM tbl WHERE xxx IS NOT NULL
|
А теперь я надеюсь на опровержение и слова о том, что я не так понял.
Особенно ваш пост от 23.09.2010 в 21:45 - просто вынос мозга из-за кучи "пояснений". | |
|
|
|
|
|
|
|
для: neadekvat
(23.09.2010 в 22:00)
| | MAX(id) выбирает, но условие IS NOT NULL не выполняется
те считает ту строку где поле xxx пустое ( NOT NULL ) | |
|
|
|
|
|
|
|
для: oliss
(24.09.2010 в 09:39)
| | чой-та я не понял.
так мож наоборот
SELECT MAX(id) as id FROM tbl WHERE xxx IS NULL | |
|
|
|
|
|
|
|
для: oliss
(24.09.2010 в 09:39)
| | > те считает ту строку где поле xxx пустое ( NOT NULL )
NULL - значение не определено, но например для текстового поля значение '' не является NULL, но оно пустое, может это ваш случай?
NULL в Системах управления базами данных (СУБД) — специальное значение (псевдозначение), которое может быть записано в поле таблицы базы данных (БД). NULL соответствует понятию «пустое поле», то есть «поле, не содержащее никакого значения». Введено для того, чтобы различать в полях БД пустые (визуально не отображаемые) значения (например, строку нулевой длины) и отсутствующие значения (когда в поле не записано вообще никакого значения, даже пустого). | |
|
|
|