Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีดึงแถวที่สองจากท้าย (Second Last Record) ใน MySQL

ใช้ subquery กับ LIMIT 2 แล้ว ORDER BY ... LIMIT 1 ไวยากรณ์:

SELECT * FROM (SELECT * FROM yourTableName ORDER BY yourIdColumnName DESC LIMIT 2) anyAliasName ORDER BY yourIdColumnName LIMIT 1;

สร้างตาราง:

mysql> create table lastRecordBeforeLastOne ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(20) DEFAULT 'John', Age int DEFAULT 18 ); Query OK, 0 rows affected (0.79 sec)

แทรกข้อมูล 10 แถว...

แสดงข้อมูล:

mysql> select * from lastRecordBeforeLastOne;

ผลลัพธ์:

+----+---------+------+ | Id | Name | Age | +----+---------+------+ | 1 | John | 18 | | 2 | Larry | 23 | | 3 | Mike | 19 | | 4 | Sam | 24 | | 5 | Bob | 26 | | 6 | David | 22 | | 7 | James | 29 | | 8 | Carol | 21 | | 9 | Maxwell | 29 | | 10 | Chris | 25 | +----+---------+------+ 10 rows in set (0.00 sec)

คำสั่งดึงแถวที่สองจากท้าย (Id=9 Maxwell):

mysql> SELECT * FROM (SELECT * FROM lastRecordBeforeLastOne ORDER BY Id DESC LIMIT 2) tbl1 ORDER BY Id LIMIT 1;

ผลลัพธ์

+----+---------+------+ | Id | Name | Age | +----+---------+------+ | 9 | Maxwell | 29 | +----+---------+------+ 1 row in set (0.00 sec)