我必须从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
问候并谢谢你。
答案 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 ();
感谢所有事情。