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

เปลี่ยนลำดับรายการใน MySQL ด้วย ORDER BY

บทความนี้สาธิตวิธีจัดลำดับข้อมูลใน MySQL โดยใช้ ORDER BY ร่วมกับ alias ของคอลัมน์ที่คำนวณได้ (Computed Column) เพื่อเรียงข้อมูลตามผลต่างของค่าสองคอลัมน์

สร้างตารางและข้อมูลทดสอบ

mysql> CREATE TABLE DemoTable653 (
    Product1Amount INT,
    Product2Amount INT
);
Query OK, 0 rows affected (0.42 sec)

mysql> INSERT INTO DemoTable653 VALUES(400, 250);
mysql> INSERT INTO DemoTable653 VALUES(500, 300);
mysql> INSERT INTO DemoTable653 VALUES(40, 400);
mysql> INSERT INTO DemoTable653 VALUES(200, 450);
mysql> INSERT INTO DemoTable653 VALUES(50, 20);

ข้อมูลก่อนเรียงลำดับ

+----------------+----------------+
| Product1Amount | Product2Amount |
+----------------+----------------+
|            400 |            250 |
|            500 |            300 |
|             40 |            400 |
|            200 |            450 |
|             50 |             20 |
+----------------+----------------+

คิวรีคำนวณผลต่างและเรียงลำดับ

mysql> SELECT 
    Product1Amount,
    Product2Amount,
    (Product1Amount - Product2Amount) AS ProductAmountDifference
FROM DemoTable653
ORDER BY ProductAmountDifference;

ผลลัพธ์ (เรียงจากผลต่างน้อยไปมาก)

+----------------+----------------+-------------------------+
| Product1Amount | Product2Amount | ProductAmountDifference |
+----------------+----------------+-------------------------+
|             40 |            400 |                    -360 |
|            200 |            450 |                    -250 |
|             50 |             20 |                      30 |
|            400 |            250 |                     150 |
|            500 |            300 |                     200 |
+----------------+----------------+-------------------------+

เทคนิค: สามารถใช้ alias (ProductAmountDifference) ใน ORDER BY ได้โดยตรง เนื่องจาก MySQL รองรับการอ้างอิง alias ในระดับ SELECT