Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách chọn từng hàng xen kẽ (alternating rows) và sắp xếp giảm dần trong SQL

Kỹ thuật

Sử dụng hàm MOD() trong mệnh đề WHERE để lọc các hàng có ID lẻ (hoặc chẵn), sau đó sắp xếp bằng ORDER BY ... DESC.

1. Tạo bảng

mysql> create table DemoTable (
    UniqueId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ClientName varchar(40),
    ClientAge int
);
Query OK, 0 rows affected (1.02 sec)

2. Chèn dữ liệu

mysql> insert into DemoTable(ClientName,ClientAge) values('Chris',34);
mysql> insert into DemoTable(ClientName,ClientAge) values('Tom',45);
mysql> insert into DemoTable(ClientName,ClientAge) values('Sam',36);
mysql> insert into DemoTable(ClientName,ClientAge) values('Carol',42);
mysql> insert into DemoTable(ClientName,ClientAge) values('David',38);

3. Xem dữ liệu

mysql> select * from DemoTable;
+----------+------------+-----------+
| UniqueId | ClientName | ClientAge |
+----------+------------+-----------+
| 1        | Chris      | 34        |
| 2        | Tom        | 45        |
| 3        | Sam        | 36        |
| 4        | Carol      | 42        |
| 5        | David      | 38        |
+----------+------------+-----------+
5 rows in set (0.00 sec)

4. Truy vấn lấy hàng xen kẽ (ID lẻ) và sắp xếp giảm dần

mysql> select * from DemoTable where mod(UniqueId,2)=1 order by UniqueId DESC;

Kết quả:

+----------+------------+-----------+
| UniqueId | ClientName | ClientAge |
+----------+------------+-----------+
| 5        | David      | 38        |
| 3        | Sam        | 36        |
| 1        | Chris      | 34        |
+----------+------------+-----------+
3 rows in set (0.00 sec)

Lưu ý: Để lấy hàng chẵn, dùng mod(UniqueId,2)=0.