如何选择没有ID字段的SQL表的最后10行?

时间:2011-01-17 15:39:38

标签: sql mysql phpmyadmin

我有一个25000行的MySQL表。

这是一个导入的CSV文件,所以我想查看最后十行,以确保它导入所有内容。

但是,由于没有ID列,我不能说:

SELECT * FROM big_table ORDER BY id DESC

什么SQL语句会向我显示此表的最后10行?

表的结构就是这样:

columns are: A, B, C, D, ..., AA, AB, AC, ... (like Excel)
all fields are of type TEXT

13 个答案:

答案 0 :(得分:22)

这里的所有答案都更好,但以防万一...... 有一种方法可以获得10个最后添加的记录。 (你这是非常不可靠:)) 你可以做点什么

SELECT * FROM table LIMIT 10 OFFSET N-10

N - 应该是表中的总行数(SELECT count(*)FROM table)。你可以使用准备好的查询将它放在一个查询中,但我不会深入研究。

答案 1 :(得分:16)

从表中选择,使用ORDER BY __ DESC按相反顺序排序,然后将结果限制为10.

SELECT * FROM big_table ORDER BY A DESC LIMIT 10

答案 2 :(得分:13)

SQL表没有隐式排序,顺序必须来自数据。 也许您应该在表中添加一个字段(例如一个int计数器)并重新导入数据。

但是,这只会给出导入的顺序,而不是数据。如果您的数据没有订购,您必须找出如何添加它。

编辑:你说

  

...确保导入所有内容。

使用行计数有什么问题?

答案 3 :(得分:9)

您可以使用“ORDER BY DESC”选项,然后按原始顺序将其重新设置:

(SELECT * FROM tablename ORDER BY id DESC LIMIT 10)ORDER BY id;

答案 4 :(得分:5)

SELECT * FROM big_table ORDER BY A DESC LIMIT 10

答案 5 :(得分:4)

如果您正在执行LOAD DATA INFILE 'myfile.csv'操作,查看所有行是否进入的最简单方法是检查show warnings();如果将数据加载到空表或临时表中,您还可以检查插入后它有的行数。

答案 6 :(得分:2)

对大数据执行count(*)查询是很昂贵的。我认为使用“SELECT * FROM table ORDER BY id DESC LIMIT n”,其中n是你每页的行数更好更轻

答案 7 :(得分:0)

如果您知道要预期多少行,我会在您的数据库中创建一个预期结构的单独临时表,附加到该表中,然后检查计数...一旦您对此有好处,那么您可以按摩将数据附加到最终生产表之前的数据。

答案 8 :(得分:0)

低技术方法:使用SQL执行此操作可能过度。根据您的问题,您只需要对导入进行一次性验证。

为什么不这样做:SELECT * FROM ImportTable

然后滚动到结果网格的底部并直观地验证“最后”几行。

答案 9 :(得分:0)

您可以使用代码从表格末尾选择10行。 select * from(SELECT * FROM table1 order by id desc LIMIT 10)as table2 order by id"

答案 10 :(得分:-1)

如果要从sql中检索最后10条记录,请使用LIMIT。 假设数据库包含20条记录。使用以下查询

SELECT * FROM TABLE_NAME LIMIT 10,20;

其中10,20是偏移值。其中10表示起始限制,20表示结束限制。

即20 -10 = 10条记录

答案 11 :(得分:-1)

这可以使用限制功能完成,这可能看起来不新,但我添加了一些东西。代码应该是:

SELECT * FROM table_name LIMIT 100,10;

对于上述情况,假设您有110行表,并且您想要选择最后十行,100是您要开始打印的行(如果您要打印),10表示您有多少行想从桌子上挑选。 对于更精确的方式,您可以从选择要打印的所有行开始,然后如果您有一个id列(我建议您放一个),然后从最后一个ID号中减去十,那么您将获取最后一行ID在你想要开始的地方,这将使你的程序自动运行和任意数量的行,但如果你直接写入值我认为你必须在每次将数据插入你的表时更改代码。我认为这帮助.Pax et Bonum。

答案 12 :(得分:-1)

如果您尚未尝试以下命令

SELECT TOP 10 * FROM big_table ORDER BY id DESC;

我在执行命令

时看到它正常工作
SELECT TOP 10 * FROM Customers ORDER BY CustomerId DESC;

https://www.w3schools.com/sql/sql_func_last.asp

自己尝试 命令窗口中的