บทความนี้สาธิตวิธีจัดลำดับข้อมูลใน 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