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

เลือกแถวด้วยเงื่อนไขผ่าน CONCAT_WS ใน MySQL

ฟังก์ชัน 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()รวมสตริงพร้อมตัวคั่น ข้าม NULLCONCAT_WS('-','A',NULL,'B') → 'A-B'
GROUP_CONCAT()รวมค่าจากหลายแถวเป็นสตริงเดียวGROUP_CONCAT(name SEPARATOR ',')

DATE_FORMAT() รูปแบบวันที่

รูปแบบความหมายตัวอย่าง
%Yปี 4 หลัก2024
%yปี 2 หลัก24
%mเดือน 01-1203
%dวัน 01-3115
%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';