MYSQL查询:查询显示倒数第二行的数据

问题描述 投票:0回答:4

我想问一下如何显示倒数第二行的数据?

+----+------------------+-------+
| id |   nama_makanan   | harga |
+----+------------------+-------+
|  1 | Ayam Katsu       | 18000 |
|  2 | Udon Daging Sapi | 26000 |
|  3 | Mie Ramen Gila   | 24000 |
|  4 | Cah Kangkung     | 16000 |
|  5 | Sayur Nangka     | 10000 |
+----+------------------+-------+

例如,如果使用限制,就像这样:

SELECT * FROM tbl_makanan ORDER BY id ASC LIMIT 1,4

结果:

+----+------------------+-------+
| id |   nama_makanan   | harga |
+----+------------------+-------+
|  2 | Udon Daging Sapi | 26000 |
|  3 | Mie Ramen Gila   | 24000 |
|  4 | Cah Kangkung     | 16000 |
|  5 | Sayur Nangka     | 10000 |
+----+------------------+-------+

但这是静态的,如果表中的数据非常多,该怎么办?如何获取第二个数据直到最后一个数据?

mysql sql
4个回答
1
投票

使用左连接获得所需结果的另一种方法

SELECT a.* 
FROM tbl_makanan a
LEFT JOIN (
    SELECT id
    FROM tbl_makanan
    ORDER BY id ASC 
    LIMIT 1
) b USING (id)
WHERE b.id IS NULL

DEMO


0
投票

只需使用非常大的“4”值即可。这适用于大多数表:

SELECT *
FROM tbl_makanan
ORDER BY id ASC
LIMIT 1, 999999999;

0
投票

你可以使用这个(这是一个工作的Fiddle):

SELECT id, nama_makanan, harga FROM tbl_makanan WHERE id < (SELECT MAX(`id`) FROM tbl_makanan) ORDER BY id DESC LIMIT 1

0
投票

希望这对你有用.. :)

SELECT *
FROM tbl_makanan
ORDER BY id ASC 
OFFSET 1 ROWS
© www.soinside.com 2019 - 2024. All rights reserved.