2013-05-29 3 views
0

Как выбрать последнюю строку из таблицы без ее сортировки?Как выбрать последнюю строку из таблицы без использования ORDER BY

Это происходит потому, что следуют по ID AUTO INCREMENT ...

Я использую C# ASP.NET, чтобы выбрать ... Я попробовать использовать LIMIT 5, но это дает мне страницу ошибки ..

rSQL = "select COUNT(*) from chatLog_db where sessionid='" + grpID + "' LIMIT 5"; 

Есть ли лучший способ решить этот вопрос?

Буду признателен за любую помощь, пожалуйста.

+4

Уточнитните «последнюю строку» и почему вы не можете использовать ORDER BY –

+0

Я только хочу отображать последние 5 строк из sessionID, которые не увеличиваются автоматически – user2330535

+0

Уважайте меня, мой обновленный ответ и проверьте второй запрос, это решит вашу проблему. – Rahul

ответ

0

Вы можете попробовать

SELECT * FROM chatLog_db WHERE sessionid > (SELECT MAX(sessionid) - 1 FROM chatLog_db); 

Вы также можете попробовать

SELECT * FROM chatLog_db WHERE sessionid > (SELECT MAX(sessionid) - 5 FROM chatLog_db); 

Вы можете использовать max, так как

select * from chatLog_db where sessionid = (select max(sessionid) from chatLog_db); 

Что-то вроде этого.

Если вы не используете order by в ваш запрос, потому что вы думаете, что это изменит порядок ваших данных dsplay тогда я скажу вам, что есть один трюк, а также для sort ваших данных в соответствии с вашими потребностями

Вы также можете отсортировать свои данные в соответствии с вашими потребностями, даже если вы используете , закажите в свой запрос, поместите результат в DataView и отсортируйте его в соответствии с вашими потребностями, поскольку DataView позволяет нам сортировать объект как .

Последние с помощью Order By как

select * from tablename order by columnname desc LIMIT 5; 

Надеется, что это работает для вас.

+0

Я попробую ...Большое вам спасибо – user2330535

+0

, но как отображать только 5 или меньше? – user2330535

+0

Это очень запутанно, что в вашем вопросе вы упоминаете, что «Как выбрать последнюю строку из таблицы без использования ORDER BY», и теперь вы хотите «отображать только 5 или меньше» ... – Rahul

0

если последнее означает, что максимальный идентификатор

select * from chatLog_db 
    where id = (select max(id) from chatLog_db); 

EDIT

выбрать 5 записей

select * from chatLog_db 
    where id > (select max(id) - 5 from chatLog_db); 
+0

но как отображать только 5 или меньше? – user2330535

+0

@ user2330535 см. Мой обновленный ответ. –

1

У вас есть столбец ID, который autoincremented, верно? После этого вы можете сделать это так ..

select * from tablename where id=(select MAX(rid) from tablename) 
+0

, но как отображать только 5 или меньше? – user2330535

+1

try select * from tablename order by columnname desc LIMIT 5; – codespider

+1

или SELECT TOP 10 * FROM custdetails1 ORDER BY customerid DESC – codespider

Смежные вопросы