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

จัดเรียงตัวเลขให้ 0 อยู่ท้ายสุดใน MySQL

ใช้ ORDER BY column = 0, column ให้ค่า 0 จัดอยู่ท้าย ส่วนที่เหลือเรียงปกติ

สร้างตารางตัวอย่าง

mysql> CREATE TABLE DemoTable (
    -> Number INT
    -> );

เพิ่มข้อมูลตัวอย่าง

mysql> INSERT INTO DemoTable VALUES(9), (4), (0), (7), (11);

แสดงข้อมูล

mysql> SELECT * FROM DemoTable;

ผลลัพธ์:

+--------+
| Number |
+--------+
| 9      |
| 4      |
| 0      |
| 7      |
| 11     |
+--------+

คำสั่งเรียง 0 ไปท้าย ส่วนอื่นเรียงน้อยไปมาก

mysql> SELECT * FROM DemoTable ORDER BY Number = 0, Number;

ผลลัพธ์:

+--------+
| Number |
+--------+
| 4      |
| 7      |
| 9      |
| 11     |
| 0      |
+--------+

คำอธิบาย: Number = 0 คืนค่า 1 (TRUE) สำหรับ 0, 0 (FALSE) สำหรับอื่นๆ | ORDER BY เรียง FALSE (0) ก่อน TRUE (1) ดังนั้นค่าที่ไม่ใช่ 0 จะอยู่หน้า เรียงตาม Number | 0 จะอยู่ท้าย