Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Ưu điểm CONCAT_WS() so với CONCAT() khi nối cột có giá trị NULL

CONCAT() trả về NULL nếu bất kỳ đối số nào NULL. CONCAT_WS() chỉ NULL khi separator (đối số 1) là NULL, các NULL khác bị bỏ qua.

Bảng Student_Name có NULL:

mysql> SELECT * FROM Student_Name;
+---------+-------+---------+
| FName   | Mname | Lname   |
+---------+-------+---------+
| Rahul   | NULL  | Singh   |
| Gaurav  | Kumar | NULL    |
| Harshit | NULL  | Khurana |
| Yash    | Pal   | Sharma  |
+---------+-------+---------+

Dùng CONCAT():

mysql> SELECT CONCAT(Fname,Mname,Lname) AS Name FROM Student_Name;
+---------------+
| Name          |
+---------------+
| NULL          |
| NULL          |
| NULL          |
| YashPalSharma |
+---------------+

Chỉ dòng 4 không có NULL → có kết quả. 3 dòng đầu bị NULL.

Dùng CONCAT_WS(' ', ...):

mysql> SELECT CONCAT_WS(' ',Fname,Mname,Lname) AS Name FROM student_name;
+-----------------+
| Name            |
+-----------------+
| Rahul Singh     |
| Gaurav Kumar    |
| Harshit Khurana |
| Yash Pal Sharma |
+-----------------+

Tất cả 4 dòng đều có kết quả, NULL bị bỏ qua, nối bằng dấu cách. Đây là ưu điểm lớn khi xử lý dữ liệu thực tế thường có NULL.