Computer >> Máy Tính >  >> Lập trình >> MySQL

Sắp xếp lại thứ tự số nguyên ngoại trừ giá trị 0 với MySQL?

Để sắp xếp lại số nguyên ngoại trừ giá trị 0, hãy sử dụng cú pháp dưới đây -

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

Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table reorderIntegerExcept0
   -> (
   -> value int
   -> );
Query OK, 0 rows affected (0.70 sec)

Sau đây là truy vấn để chèn các bản ghi trong bảng bằng cách sử dụng lệnh insert -

mysql> insert into reorderIntegerExcept0 values(90);
Query OK, 1 row affected (0.17 sec)

mysql> insert into reorderIntegerExcept0 values(10);
Query OK, 1 row affected (0.21 sec)

mysql> insert into reorderIntegerExcept0 values(0);
Query OK, 1 row affected (0.18 sec)

mysql> insert into reorderIntegerExcept0 values(40);
Query OK, 1 row affected (0.18 sec)

mysql> insert into reorderIntegerExcept0 values(0);
Query OK, 1 row affected (0.09 sec)

mysql> insert into reorderIntegerExcept0 values(50);
Query OK, 1 row affected (0.17 sec)

mysql> insert into reorderIntegerExcept0 values(80);
Query OK, 1 row affected (0.13 sec)

mysql> insert into reorderIntegerExcept0 values(0);
Query OK, 1 row affected (0.10 sec)

mysql> insert into reorderIntegerExcept0 values(300);
Query OK, 1 row affected (0.20 sec)

Sau đây là truy vấn để hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select -

mysql> select * from reorderIntegerExcept0;

Điều này sẽ tạo ra kết quả sau -

+-------+
| value |
+-------+
| 90    |
| 10    |
| 0     |
| 40    |
| 0     |
| 50    |
| 80    |
| 0     |
| 300   |
+-------+
9 rows in set (0.00 sec)

Sau đây là truy vấn để sắp xếp lại số nguyên ngoại trừ giá trị 0 -

mysql> select * from reorderIntegerExcept0 order by value =0 ,value;

Điều này sẽ tạo ra kết quả sau -

+-------+
| value |
+-------+
| 10    |
| 40    |
| 50    |
| 80    |
| 90    |
| 300   |
| 0     |
| 0     |
| 0     |
+-------+
9 rows in set (0.00 sec)

Nếu bạn muốn nó theo thứ tự giảm dần cho các số nguyên ngoại trừ 0, hãy sử dụng truy vấn bên dưới -

mysql> select * from reorderIntegerExcept0 order by value =0,value DESC;

Điều này sẽ tạo ra kết quả sau -

+-------+
| value |
+-------+
| 300   |
| 90    |
| 80    |
| 50    |
| 40    |
| 10    |
| 0     |
| 0     |
| 0     |
+-------+
9 rows in set (0.00 sec)