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

การใช้ Alias สำหรับคอลัมน์ใน MySQL SELECT *

Alias ไม่สามารถใช้กับ * ได้ ต้องระบุคอลัมน์ทีละตัว

MySQL ไม่รองรับ SELECT * AS alias FROM table ต้องระบุคอลัมน์และตั้ง alias ทีละคอลัมน์

รูปแบบคำสั่ง

SELECT aliasName.columnName1 AS alias1,
       aliasName.columnName2 AS alias2,
       ...
FROM yourTableName AS aliasName;

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

mysql> CREATE TABLE TableAliasDemo (
    -> Id INT,
    -> Name VARCHAR(100),
    -> Age INT
    -> );
Query OK, 0 rows affected (0.46 sec)

mysql> INSERT INTO TableAliasDemo VALUES(1,'John',23);
mysql> INSERT INTO TableAliasDemo VALUES(2,'Sam',24);
mysql> INSERT INTO TableAliasDemo VALUES(3,'David',26);
mysql> INSERT INTO TableAliasDemo VALUES(4,'Carol',20);

ข้อมูลทั้งหมด

mysql> SELECT * FROM TableAliasDemo;
+------+-------+------+
| Id   | Name  | Age  |
+------+-------+------+
| 1    | John  | 23   |
| 2    | Sam   | 24   |
| 3    | David | 26   |
| 4    | Carol | 20   |
+------+-------+------+
4 rows in set (0.00 sec)

ใช้ Table Alias และ Column Aliases

mysql> SELECT alias.Id AS aliasForIdColumn,
    ->        alias.Name AS aliasForNameColumn,
    ->        alias.Age AS aliasForAgeColumn
    -> FROM TableAliasDemo AS alias;
+------------------+--------------------+-------------------+
| aliasForIdColumn | aliasForNameColumn | aliasForAgeColumn |
+------------------+--------------------+-------------------+
| 1                | John               | 23                |
| 2                | Sam                | 24                |
| 3                | David              | 26                |
| 4                | Carol              | 20                |
+------------------+--------------------+-------------------+
4 rows in set (0.00 sec)

ประโยชน์ของ Table Alias:

  • ทำให้ query สั้นลงเมื่อ join หลายตาราง
  • แยกความคลุมเครือเมื่อคอลัมน์ชื่อซ้ำ
  • อ่านง่ายขึ้น: u.name แทน users.name

Column Alias (AS):

  • เปลี่ยนชื่อคอลัมน์ในผลลัพธ์
  • AS เป็น optional: col AS name = col name
  • ใช้ใน ORDER BY, GROUP BY, HAVING ได้ (แต่ไม่ใช่ WHERE)

ตัวอย่าง JOIN กับ Alias:

SELECT u.name AS user_name, o.order_date, p.name AS product_name
FROM users AS u
JOIN orders AS o ON u.id = o.user_id
JOIN products AS p ON o.product_id = p.id;