ฟังก์ชัน CONCAT_WS()
CONCAT_WS(separator, str1, str2, ...) — Concatenate With Separator รวมสตริงด้วยตัวคั่น ข้ามค่า NULL อัตโนมัติ
ตัวอย่าง: ตาราง demo38
CREATE TABLE demo38 (
user_id INT,
user_first_name VARCHAR(20),
user_last_name VARCHAR(20),
user_date_of_birth DATE
);
INSERT INTO demo38 VALUES
(10, 'John', 'Smith', '1990-10-01'),
(11, 'David', 'Miller', '1994-01-21'),
(11, 'John', 'Doe', '1992-02-01'),
(12, 'Adam', 'Smith', '1996-11-11'),
(13, 'Chris', 'Brown', '1997-03-10');
คำสั่ง: รวมชื่อ-นามสกุล-ปีเกิด โดยกรอง user_id 11 และ 13
SELECT CONCAT_WS('/',
user_first_name,
user_last_name,
'the date of birth year is=',
DATE_FORMAT(user_date_of_birth, '%Y')
) AS Output
FROM demo38
WHERE user_id IN (11, 13);
ผลลัพธ์
+----------------------------------------------+
| Output |
+----------------------------------------------+
| David/Miller/the date of birth year is=/1994 |
| John/Doe/the date of birth year is=/1992 |
| Chris/Brown/the date of birth year is=/1997 |
+----------------------------------------------+
ฟังก์ชันที่เกี่ยวข้อง
| ฟังก์ชัน | คำอธิบาย | ตัวอย่าง |
| CONCAT() | รวมสตริงโดยไม่มีตัวคั่น คืน NULL ถ้ามีค่า NULL ใดๆ | CONCAT('A','B') → 'AB' |
| CONCAT_WS() | รวมสตริงพร้อมตัวคั่น ข้าม NULL | CONCAT_WS('-','A',NULL,'B') → 'A-B' |
| GROUP_CONCAT() | รวมค่าจากหลายแถวเป็นสตริงเดียว | GROUP_CONCAT(name SEPARATOR ',') |
DATE_FORMAT() รูปแบบวันที่
| รูปแบบ | ความหมาย | ตัวอย่าง |
%Y | ปี 4 หลัก | 2024 |
%y | ปี 2 หลัก | 24 |
%m | เดือน 01-12 | 03 |
%d | วัน 01-31 | 15 |
%H:%i:%s | เวลา 24 ชม. | 14:30:05 |
กรณีศึกษา: สร้าง Full Name สำหรับรายงาน
SELECT
user_id,
CONCAT_WS(' ', user_first_name, user_last_name) AS full_name,
DATE_FORMAT(user_date_of_birth, '%d/%m/%Y') AS dob_thai
FROM demo38
WHERE user_date_of_birth >= '1995-01-01';