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

Форум MySQL

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

 

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

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

тема: Как выбрать последние n записей из таблицы?
 
 автор: WebTech   (03.11.2005 в 17:14)   письмо автору
 
 

Как выбрать последние n записей из таблицы?

   
 
 автор: napTu3aH   (03.11.2005 в 17:42)   письмо автору
 
   для: WebTech   (03.11.2005 в 17:14)
 

Хмммм.... Ну если есть поле auto_increment можно схитрить :-)) $n- кол-во записей которые нужно вывести, правда они будут в обратном порядке. По другому боюсь в один запрос не получиться.

SELECT * 
FROM table
ORDER BY 'id' DESC 
LIMIT 0, $n

   
 
 автор: WebTech   (03.11.2005 в 18:31)   письмо автору
 
   для: napTu3aH   (03.11.2005 в 17:42)
 

А если нет auto_increment? Тогда я подозреваю, что никак, наверное :-(

   
 
 автор: napTu3aH   (03.11.2005 в 18:37)   письмо автору
 
   для: WebTech   (03.11.2005 в 18:31)
 

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

   
 
 автор: Евгений Петров   (03.11.2005 в 19:55)   письмо автору
 
   для: napTu3aH   (03.11.2005 в 18:37)
 

Зачем структура? Двумя запросами можно примерно так:
<?
  $num 
10;
  
$count mysql_result(mysql_query("SELECT COUNT(*) FROM tbl"),0);
  
$query mysql_query("SELECT * FROM tbl LIMIT $num,".intval($count-$num)."");
?>

   
 
 автор: napTu3aH   (03.11.2005 в 20:06)   письмо автору
 
   для: Евгений Петров   (03.11.2005 в 19:55)
 

Да действительно... Недодумал. Только навероно вот так

<? 
  $num 
10
  
$count mysql_result(mysql_query("SELECT COUNT(*) FROM tbl"),0); 
  
$query mysql_query("SELECT * FROM tbl LIMIT ".intval($count-$num).", $num"); 
?>

   
 
 автор: Евгений Петров   (03.11.2005 в 20:09)   письмо автору
 
   для: napTu3aH   (03.11.2005 в 20:06)
 

Ну да, теперь я не додумал. :)

   
 
 автор: WebTech   (05.11.2005 в 07:55)   письмо автору
 
   для: Евгений Петров   (03.11.2005 в 20:09)
 

Спасибо :-)
А средствами только лишь MySQL это можно сделать? Вся проблема в LIMIT :-( В PHP это легко решается, а так...
Извините за настойчивость.

   
 
 автор: cheops   (05.11.2005 в 10:41)   письмо автору
 
   для: WebTech   (03.11.2005 в 18:31)
 

>А если нет auto_increment? Тогда я подозреваю, что никак,
>наверное :-(
Можно рискнуть вывести значения без сортировки
SELECT * 
FROM table 
LIMIT $n

но это будет работать только в том случае, если в таблицу будут добавляться значения, но они не будут подвергаться удалению и обновлению...

   
Rambler's Top100
вверх

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