MySQL การใช้งานฟังก์ชัน CONCAT()

ฟังก์ชัน CONCAT() ใน MySQL ใช้เพื่อรวมข้อความหลาย ๆ ข้อความเข้าด้วยกันเป็นข้อความเดียว โดยสามารถรวมข้อความได้ตั้งแต่ 2 ข้อความขึ้นไป ถ้าค่าใดค่าหนึ่งในข้อความที่นำมารวมเป็น NULL ฟังก์ชัน CONCAT() จะคืนค่า NULL

ประโยชน์ของฟังก์ชัน CONCAT()

  • ใช้รวมชื่อ-นามสกุล, ชื่อเต็มของรายการ, รหัส + ชื่อ, หรือข้อความที่ต้องการจัดรูปแบบ
  • เหมาะสำหรับการแสดงผลใน UI หรือรายงาน เช่น "ชื่อสินค้า: ชื่อ - ราคา"

รูปแบบ Syntax

CONCAT(str1, str2, ..., strN)
  • str1, str2, …, strN คือข้อความ (string) หรือคอลัมน์ที่ต้องการรวม
  • ประเภทข้อมูลที่ไม่ใช่ข้อความจะถูกแปลงเป็น string อัตโนมัติ

ตัวอย่างการใช้งาน

SQL
SELECT CONCAT('Hello', ' ', 'World');     -- ผลลัพธ์: Hello World
SELECT CONCAT('ปี ', 2025);               -- ผลลัพธ์: ปี 2025
SELECT CONCAT('รหัส:', NULL);             -- ผลลัพธ์: NULL
  • หากมี NULL แม้แต่ตัวเดียว ผลลัพธ์จะเป็น NULL ทั้งหมด
  • หากต้องการให้ NULL ถูกแทนด้วยช่องว่างหรือข้อความว่าง ให้ใช้ IFNULL() ครอบ

รวมชื่อและนามสกุลของนักแสดง (first_name + last_name)

SQL
SELECT actor_id,
       CONCAT(first_name, ' ', last_name) AS full_name
FROM actor
LIMIT 10;
  • รวม first_name และ last_name พร้อมเว้นวรรคตรงกลาง
  • แสดงชื่อเต็มของนักแสดงในตาราง actor

รวมรหัสลูกค้ากับชื่อ (Customer ID + Name)

SQL
SELECT customer_id,
       CONCAT('CUST-', customer_id, ': ', first_name, ' ', last_name) AS customer_label
FROM customer
LIMIT 10;

การใช้งานร่วมกับ IFNULL() เพื่อป้องกัน NULL

SQL
SELECT CONCAT(first_name, ' ', IFNULL(last_name, '(ไม่มีนามสกุล)')) AS full_name
FROM actor;
  • กรณี last_name เป็น NULL จะแสดงข้อความว่า “ไม่มีนามสกุล” แทน
แชร์เรื่องนี้