Dùng ORDER BY DESC với LIMIT để tìm giá trị lớn thứ n.
- Lớn thứ 2:
LIMIT 1,1 - Lớn thứ 4:
LIMIT 3,1 - Lớn nhất:
LIMIT 1
Tạo bảng NthSalaryDemo:
mysql> create table NthSalaryDemo -> ( -> Id int NOT NULL AUTO_INCREMENT, -> Name varchar(10), -> Salary int, -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (1.03 sec)
Chèn 9 bản ghi lương khác nhau.
Hiển thị dữ liệu:
mysql> select *from NthSalaryDemo;
+----+---------+--------+ | Id | Name | Salary | +----+---------+--------+ | 1 | Larry | 5700 | | 2 | Sam | 6000 | | 3 | Mike | 5800 | | 4 | Carol | 4500 | | 5 | Bob | 4900 | | 6 | David | 5400 | | 7 | Maxwell | 5300 | | 8 | James | 4000 | | 9 | Robert | 4600 | +----+---------+--------+ 9 rows in set (0.00 sec)
Trường hợp 1: Lớn thứ 4 (LIMIT 3,1):
mysql> select *from NthSalaryDemo order by Salary desc limit 3,1;
+----+-------+--------+ | Id | Name | Salary | +----+-------+--------+ | 6 | David | 5400 | +----+-------+--------+ 1 row in set (0.00 sec)
Trường hợp 2: Lớn thứ 2 (LIMIT 1,1):
mysql> select *from NthSalaryDemo order by Salary desc limit 1,1;
+----+------+--------+ | Id | Name | Salary | +----+------+--------+ | 3 | Mike | 5800 | +----+------+--------+ 1 row in set (0.00 sec)
Trường hợp 3: Lớn nhất (LIMIT 1):
mysql> select *from NthSalaryDemo order by Salary desc limit 1;
+----+------+--------+ | Id | Name | Salary | +----+------+--------+ | 2 | Sam | 6000 | +----+------+--------+ 1 row in set (0.00 sec)
Trường hợp 4: Lớn thứ 8 (LIMIT 7,1):
mysql> select *from NthSalaryDemo order by Salary desc limit 7,1;
+----+-------+--------+ | Id | Name | Salary | +----+-------+--------+ | 4 | Carol | 4500 | +----+-------+--------+ 1 row in set (0.00 sec)