2008-11-24 101 views

回答

15

最后一行的ID是否最高?如果是这样,我认为这将工作:

SELECT * FROM TABLE WHERE ID != (SELECT MAX(ID) FROM TABLE) 

MySQL确实允许子选择在当前版本,对吧?

然而,在大多数情况下,它很可能,如果你选择的所有行,然后过滤不需要的数据从应用程序中有更好的表现。

+0

的MySQL 4.1已经支持子查询!虽然承认一些托管公司仍然使用MySQL 4.0,缺乏这种功能。 – 2008-11-24 22:17:01

+0

嘿,我这么认为。但是最后一次我使用MySQL的时候,它是3.X,而这样的东西不起作用。现在大多使用MS SQL Server。 – 2008-11-24 22:40:15

2

SELECT DISTINCT t1.columns FROM表T1
INNER JOIN表t2 ON t1.id < t2.id

在我的经验中,MySQL喜欢这个技术,可以追溯到几个版本。

1

我没有看到这里列出的另一项技术是

SELECT * FROM table ORDER BY id DESC LIMIT 10000 OFFSET 1; 

这会给你的ID后代下令除第一的记录,那就是除了最后按照原来的顺序。
请注意,使用此方法,您的只会记录10000条记录,但是此数字可以高到您想要的高度,但不能省略。
优点这种方法的是,你可以通过任何你想要订购。
缺点是它给你从上次到第一次排序的记录。
最后,实在值得指出的是,其他的方法在这里工作得很好