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

วิธีสร้างคอลัมน์คำนวณ (Generated Field) ใน MySQL SELECT

ใช้ AS สร้าง Alias สำหรับค่าคงที่หรือนิพจน์ใน SELECT

ในคำสั่ง SELECT สามารถสร้างคอลัมน์ใหม่ (Derived Column) จากค่าคงที่ นิพจน์ หรือฟังก์ชัน ได้โดยใช้ AS alias_name

ตัวอย่างสร้างตารางและข้อมูล

CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name VARCHAR(20)
);

INSERT INTO DemoTable (Name) VALUES ('John'), ('Robert'), ('David');

ข้อมูลในตาราง

+----+--------+
| Id | Name   |
+----+--------+
| 1  | John   |
| 2  | Robert |
| 3  | David  |
+----+--------+

คำสั่งเพิ่มคอลัมน์ CountryName = 'US' ทุกแถว

SELECT Id, Name, 'US' AS CountryName FROM DemoTable;

ผลลัพธ์

+----+--------+-------------+
| Id | Name   | CountryName |
+----+--------+-------------+
| 1  | John   | US          |
| 2  | Robert | US          |
| 3  | David  | US          |
+----+--------+-------------+

คำอธิบาย: 'US' AS CountryName สร้างคอลัมน์ใหม่ชื่อ CountryName ค่าคงที่ 'US' ทุกแถว

ประยุกต์ใช้คอลัมน์คำนวณอื่นๆ:

  • SELECT Id, Name, CONCAT('User_', Id) AS Username FROM DemoTable;
  • SELECT Id, Price, Quantity, Price * Quantity AS Total FROM Orders;
  • SELECT *, CASE WHEN Age >= 18 THEN 'Adult' ELSE 'Minor' END AS AgeGroup FROM Users;
  • SELECT Id, CreatedAt, DATEDIFF(NOW(), CreatedAt) AS DaysSinceCreated FROM Logs;

⚠ ข้อควรระวัง: Alias ที่ตั้งด้วย AS ไม่สามารถใช้ใน WHERE/GROUP BY/HAVING ของคำสั่งเดียวกันได้ (ต้องใช้ Subquery หรือ CTE) แต่ใช้ใน ORDER BY ได้