SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 11.06.2010 14:19:35

Blondy
Участник
Зарегистрирован: 20.03.2010
Сообщений: 14

Вывести последнюю запись из таблицы

Доброго времени!
Я прошу прощения за свои дилетантские вопросы, собственно на которых и учусь.
Не могли бы вы подсказать как можно извлечь последнюю запись из таблицы? я пользуюсь вот такой конструкцией:

Код:

 $result =mysql_query("SELECT * FROM newraz");
while ($myrow = mysql_fetch_array ($result)) {
printf("

Но видимо не знаю или совсем забыла по глупости как из этой же таблицы (newraz), в которой содержится много записей, извлечь последнюю? или может быть нужно для этого использовать другую конструкцию, а не данную, что мне очень привычна.

Огромное спасибо заранее!

Неактивен

 

#2 11.06.2010 15:21:25

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Вывести последнюю запись из таблицы

В запросе SELECT * FROM newraz строки будут выдаваться вообще говоря в
произвольном порядке. Для того, чтобы был порядок, нужно указывать это
явно (например, ORDER BY id). Тогда можно вытаскивать первую строку при
сортировке в обратном порядке:
SELECT * FROM newraz ORDER BY id DESC LIMIT 1;

Ну и в приложении лучше делать SELECT field1,…,fieldN, а не SELECT *.

Неактивен

 

#3 11.06.2010 16:36:12

Blondy
Участник
Зарегистрирован: 20.03.2010
Сообщений: 14

Re: Вывести последнюю запись из таблицы

paulus, спасибо огромное что откликнулись!
Но я не очень поняла, честно говоря.
То есть мне в самой таблице надо сделать ещё один столбец id ? Сейчас у меня выводятся все записи в порядке от самой старой до самой свежей сверху вниз.
пока что SELECT * FROM newraz ORDER BY id DESC LIMIT 1; у меня не работает, пишет ошибку.
А в приложении это где? в таблице? или коде страницы?

Простите за такое количество вопросов

Отредактированно Blondy (11.06.2010 16:38:24)

Неактивен

 

#4 11.06.2010 17:51:35

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Вывести последнюю запись из таблицы

Ну, у Вас в таблице есть же какой-то столбец, по которому Вы сортируете?
Нельзя надеяться на то, что записи будут выдаваться в порядке добавления:

Код:

[celestia] root test > create table testinsert (f int) engine=myisam;
Query OK, 0 rows affected (0.07 sec)

[celestia] root test > insert into testinsert values (1), (2), (3);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

[celestia] root test > delete from testinsert where f = 2;
Query OK, 1 row affected (0.00 sec)

[celestia] root test > insert into testinsert values (4);
Query OK, 1 row affected (0.00 sec)

[celestia] root test > select * from testinsert;
+------+
| f    |
+------+
|    1 |
|    4 |
|    3 |
+------+
3 rows in set (0.00 sec)

В данном случае запись 4 добавлена была последней, а вывелась второй.

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

Неактивен

 

#5 11.06.2010 18:18:24

Blondy
Участник
Зарегистрирован: 20.03.2010
Сообщений: 14

Re: Вывести последнюю запись из таблицы

Спасибо вам! теперь поняла) Простите новичка неопытного, у которого ум за разум заходит.
Теперь всё получилось!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson