如何使用SQL选择从倒数第二行开始的最后4个数据

时间:2018-11-29 19:01:31

标签: mysql sql

我有一个名为posts的表,该表包含3列,分别是iddetailsdate,其中包含按升序排列的以下数据:

+----+----------+-------+
| id | details  | date  |
+----+----------+-------+
|  1 | details1 | date1 |
|  2 | details2 | date2 |
|  3 | details3 | date3 |
|  4 | details4 | date4 |
+----+----------+-------+

我想按降序选择数据,但我想保留第一行详细信息,就像我想保留第4行ID详细信息,details4,date4,但随后我想从ID 3到2中选择数据order by id desc limit 2,但保留最后一行的第一行

2 个答案:

答案 0 :(得分:2)

您可以将查询用于ORDER BY DESC LIMIT 1,n

那样, n 是您要获取的行数,并且您使用 LIMIT 1 跳过了结果的第一行。 >

答案 1 :(得分:0)

WITH a AS (
    SELECT 1 i
    UNION ALL
    SELECT 2 i
    UNION ALL 
    SELECT 3 i
    UNION ALL
    SELECT 4 i
)
, b as (
    SELECT TOP 1 i FROM a ORDER BY i DESC
)
SELECT * 
FROM A 
EXCEPT 
SELECT * FROM B
ORDER BY i DESC