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

MySQL ORDER BY 0 trước sau đó hiển thị bản ghi theo thứ tự giảm dần?

Để sắp xếp 0 trước và sau đó là lớn nhất, bạn có thể sử dụng cú pháp sau:

select * from yourTableName order by yourColumnName=0 DESC, yourColumnName DESC;

Trước hết, hãy tạo một bảng:

mysql> create table DemoTable ( Value int ); Query OK, 0 rows affected (0.65 sec)

Chèn các bản ghi vào bảng bằng lệnh insert:

mysql> insert into DemoTable values(90); Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable values(0); Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values(20); Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values(0); Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values(70); Query OK, 1 row affected (0.34 sec)
mysql> insert into DemoTable values(0); Query OK, 1 row affected (0.15 sec)

Hiển thị các bản ghi từ bảng bằng lệnh select:

mysql> select * from DemoTable;

Điều này sẽ tạo ra đầu ra sau:

+-------+
| Value |
+-------+
| 90    |
| 0     |
| 20    |
| 0     |
| 10    |
| 70    |
| 0     |
+-------+
7 rows in set (0.00 sec)

Đây là truy vấn để sắp xếp 0 trước sau đó hiển thị phần tử lớn nhất theo thứ tự DESC:

mysql> select * from DemoTable order by Value=0 DESC, Value DESC;

Điều này sẽ tạo ra đầu ra sau:

+-------+
| Value |
+-------+
| 0     |
| 0     |
| 0     |
| 90    |
| 70    |
| 20    |
| 10    |
+-------+
7 rows in set (0.00 sec)