Автор Тема: Как получить последнюю запись в mySQL?  (Прочитано 5286 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Ilya

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 108
  • +0/-0
  • 0
    • Просмотр профиля
    • www.svd.ru
В таблице есть поле "id" (auto_increment, not_null). Когда я делаю новую запись в таблицу, id генерится автоматически. Как узнать id последней записи?

Оффлайн Realtor from Moscow

  • Любитель пива
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 464
  • +0/-0
  • 2
    • Просмотр профиля
    • http://building.msk.ru
Как получить последнюю запись в mySQL?
« Ответ #1 : 07 Августа 2001, 23:59:41 »
Сорри. Я имел ввиду Перл. Просто автор вопроса (Ilia) все время о Перле спрашивал :)
Это все приколы DBD, а не мускла

[Изменено 7.8.2001 автор: Realtor from Moscow]
Павел Габов
Мой Reg]life тчк building тчк msk тчк ru. Building.Msk.ru :: Коммерческая недвижимость Москвы и Подмосковья.

Оффлайн Ilya

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 108
  • +0/-0
  • 0
    • Просмотр профиля
    • www.svd.ru
Как получить последнюю запись в mySQL?
« Ответ #2 : 08 Августа 2001, 13:31:52 »
Извеняюсь за вопрос, но как применить last_insert_id() :), примерчик есть?
Пробовал так: "select last_insert_id() from table" - не работает.

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
Как получить последнюю запись в mySQL?
« Ответ #3 : 07 Августа 2001, 23:46:49 »
эээ а как в РНР это будет выглядеть? ээ в смысле это функции MySQL или DBI, DBD?
ну, будем исповедоваться?

Оффлайн Realtor from Moscow

  • Любитель пива
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 464
  • +0/-0
  • 2
    • Просмотр профиля
    • http://building.msk.ru
Как получить последнюю запись в mySQL?
« Ответ #4 : 07 Августа 2001, 23:41:46 »
Можно пойти другим путем.
После вставки данных INSERT INTO ... последний id можно получить:
$sth->{mysql_insertid} или $sth->{insertid} (смотря какая версия DBI и DBD):)
Павел Габов
Мой Reg]life тчк building тчк msk тчк ru. Building.Msk.ru :: Коммерческая недвижимость Москвы и Подмосковья.

Оффлайн Ilya

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 108
  • +0/-0
  • 0
    • Просмотр профиля
    • www.svd.ru
Как получить последнюю запись в mySQL?
« Ответ #5 : 07 Августа 2001, 17:45:10 »
Просто я думал, что это можно сделать в запросе, что-то в роде этого: "select id from table where id=\'max(id)\'" (жаль что это не работает).

Оффлайн Ilya

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 108
  • +0/-0
  • 0
    • Просмотр профиля
    • www.svd.ru
Как получить последнюю запись в mySQL?
« Ответ #6 : 07 Августа 2001, 16:14:22 »
Во! Блин! Спасибо :)!
Только, если у меня max(id)=\'000036\', мне возвращается ответ \'36\'. Конечно, можно сделать второй запрос: "select id from table where id=\'36\'", но мне кажется, что дожно быть более рациональное решение.

$id=количество_рядов - 1; не подойдет, т.к. некоторые записи из базы будут удаляться.

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Как получить последнюю запись в mySQL?
« Ответ #7 : 07 Августа 2001, 17:28:17 »
Цитировать
Во! Блин! Спасибо :)!
Только, если у меня max(id)=\'000036\', мне возвращается ответ \'36\'. Конечно, можно сделать второй запрос: "select id from table where id=\'36\'", но мне кажется, что дожно быть более рациональное решение.

$id=количество_рядов - 1; не подойдет, т.к. некоторые записи из базы будут удаляться.

А что не позволяет добавить нули в начало?
$id = sprintf("%06d",$id);
2B OR NOT 2B = FF

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Как получить последнюю запись в mySQL?
« Ответ #8 : 07 Августа 2001, 14:53:00 »
Цитировать
я делаю так.
после добавления беру из таблицы "SELECT count(id) FROM table ";
это возвращает - количество рядов.
$id=количество_рядов - 1;


[Изменено 7.8.2001 автор: AliMamed]

"SELECT max(id) FROM table ";
2B OR NOT 2B = FF

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
Как получить последнюю запись в mySQL?
« Ответ #9 : 07 Августа 2001, 13:01:30 »
(количество записей в таблице)-1
ну, будем исповедоваться?

Оффлайн Ilya

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 108
  • +0/-0
  • 0
    • Просмотр профиля
    • www.svd.ru
Как получить последнюю запись в mySQL?
« Ответ #10 : 07 Августа 2001, 13:34:05 »
А по подробней мона? Хотелось бы при добавлении новой записи получить в ответ ее id.

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
Как получить последнюю запись в mySQL?
« Ответ #11 : 07 Августа 2001, 14:14:54 »
я делаю так.
после добавления беру из таблицы "SELECT count(id) FROM table ";
это возвращает - количество рядов.
$id=количество_рядов - 1;


[Изменено 7.8.2001 автор: AliMamed]
ну, будем исповедоваться?

Оффлайн Realtor from Moscow

  • Любитель пива
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 464
  • +0/-0
  • 2
    • Просмотр профиля
    • http://building.msk.ru
Как получить последнюю запись в mySQL?
« Ответ #12 : 08 Августа 2001, 00:23:30 »
2Ali: в Пхп есть функция mysql_insert_id().
При том, она есть начиная с php 3.0 :)
И наконец, есть внутренныя функция MySQL last_insert_id().
Павел Габов
Мой Reg]life тчк building тчк msk тчк ru. Building.Msk.ru :: Коммерческая недвижимость Москвы и Подмосковья.

  • Гость
Как получить последнюю запись в mySQL?
« Ответ #13 : 17 Августа 2001, 16:44:07 »
create table a(id int not null primary key auto_increment, name text)

insert into a values(null, \'name\')

select last_insert_id()

Результат 1.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28