MySQL最近50条记录

时间:2017-09-20 13:14:45

标签: mysql

我必须从MySQL数据库中获取最后50条记录。

以下是我的测试数据库的结构:

ID S1 S2 S3 Date-time Label
13 32 55 33 2017-09-05 13:15:06 temperature
16 111 222 66 2017-09-05 19:22:14 temperature
17 44 55 33 2017-09-05 19:22:14 temperature
18 55 11 88 2017-09-12 14:22:00 temperature
21 77 1 200 2017-09-15 12:24:06 temperature
22 22 55 11 2017-09-19 14:37:00 temperature

我怎么才能只显示最后3个数据?例如:

18 55 11 88 2017-09-12 14:22:00 temperature
21 77 1 200 2017-09-15 12:24:06 temperature
22 22 55 11 2017-09-19 14:37:00 temperature

问候并谢谢你。

4 个答案:

答案 0 :(得分:0)

FOR ORACLE:

   SELECT * FROM (
       SELECT ID,
              S1,
              S2,
              S3,
              Date-time,
              Label
        FROM TABLE
        ORDER BY ID DESC)
    WHERE ROWNUM <= 50;

FOR MYSQL:

SELECT ID,
      S1,
      S2,
      S3,
      Date-time,
      Label
FROM TABLE
ORDER BY ID DESC
LIMIT 50; 

这是一个快速的文档:

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

编辑:

最后50行:

SELECT * FROM (
    SELECT * FROM table ORDER BY id DESC LIMIT 50
) sub
ORDER BY id ASC

答案 1 :(得分:0)

在Oracle12c中,您可以使用fetch keywork:

SELECT *
FROM   table 
ORDER BY id DESC
FETCH FIRST 50 ROWS ONLY;

答案 2 :(得分:0)

首先使用前N个查询(行数<= 50),对于最后50个,您可以使用“按ID desc排序”

答案 3 :(得分:0)

首先,我对ORACLE与MYSQL之间的帖子感到困惑,我道歉。

最后的解决方案如下:

SELECT * FROM inv ORDER BY id DESC LIMIT 50

然后使用函数转换我收集的ARRAY:

var dorde = d0.reverse ();

感谢所有事情。