Computer >> Máy Tính >  >> Lập trình >> MySQL

Lợi thế của hàm CONCAT_WS () so với hàm CONCAT () khi chúng ta muốn nối các giá trị từ cột và bất kỳ cột nào có NULL là giá trị của nó?


Như chúng ta biết rằng hàm CONCAT () trả về NULL nếu bất kỳ đối số nào là NULL nhưng hàm CONCAT_WS () chỉ trả về NULL nếu đối số đầu tiên, tức là dấu phân cách là NULL và nó bỏ qua bất kỳ đối số nào khác VÔ GIÁ TRỊ. Có thể nói đây là ưu điểm của hàm CONCAT_WS () so với hàm CONCAT () khi chúng ta muốn nối các giá trị từ cột và bất kỳ cột nào có NULL là giá trị của nó. Để hiểu nó, chúng ta xem xét ví dụ từ bảng ‘Student_name; có dữ liệu sau -

mysql> Select * from Student_Name;
+---------+-------+---------+
| FName   | Mname | Lname   |
+---------+-------+---------+
| Rahul   | NULL  | Singh   |
| Gaurav  | Kumar | NULL    |
| Harshit | NULL  | Khurana |
| Yash    | Pal   | Sharma  |
+---------+-------+---------+
4 rows in set (0.00 sec)

Bây giờ, giả sử nếu chúng ta muốn nối các giá trị của các cột Tên, Tên và Tên thì sau đó sẽ là đầu ra -

mysql> Select CONCAT(Fname,Mname,Lname)AS Name from Student_Name;
+---------------+
| Name          |
+---------------+
| NULL          |
| NULL          |
| NULL          |
| YashPalSharma |
+---------------+
4 rows in set (0.00 sec)

Nhưng nếu chúng ta sử dụng hàm CONCAT_WS () thì nó sẽ bỏ qua NULL như đã làm trong truy vấn sau -

mysql> Select CONCAT_WS(' ',Fname,Mname,Lname)AS Name from student_name;
+-----------------+
| Name            |
+-----------------+
| Rahul Singh     |
| Gaurav Kumar    |
| Harshit Khurana |
| Yash Pal Sharma |
+-----------------+
4 rows in set (0.00 sec)