如何从表中选择最新的行而不使用ORDER BY

时间:2013-05-29 04:24:56

标签: asp.net sql-server sql-server-2008 c#-4.0 code-behind

如何从表中选择最新的行而不进行排序?

这是因为它跟随ID AUTO INCREMENT ...

我使用c#asp.net选择...我确实尝试使用LIMIT 5,但它给了我一个错误页面..

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

有没有更好的方法来解决这个问题?

我很感激任何帮助。

4 个答案:

答案 0 :(得分:1)

你有一个自动增量的id列,对吧?然后你就可以这样做..

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

答案 1 :(得分: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;

希望它适合你。

答案 2 :(得分:0)

如果最新意味着最大ID

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

修改

选择5条记录

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

答案 3 :(得分:0)

在MSSQL上,只需使用top 1而不是限制

select top(1) * from mytable order by some_column

http://msdn.microsoft.com/en-us/library/ms189463.aspx