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

ข้อดีของฟังก์ชัน CONCAT_WS() เหนือฟังก์ชัน CONCAT() คืออะไร เมื่อเราต้องการเชื่อมค่าจากคอลัมน์และคอลัมน์ใดๆ ที่มีค่า NULL เป็นค่าของมัน


อย่างที่เราทราบดีว่าฟังก์ชัน CONCAT() จะคืนค่า NULL หากอาร์กิวเมนต์ใดๆ เป็น NULL แต่ฟังก์ชัน CONCAT_WS() จะคืนค่า NULL เฉพาะในกรณีที่อาร์กิวเมนต์แรกคือ ตัวคั่นเป็น NULL และจะละเว้นอื่นๆ โมฆะ. เราสามารถพูดได้ว่านี่เป็นข้อได้เปรียบของฟังก์ชัน CONCAT_WS() เหนือฟังก์ชัน CONCAT() เมื่อเราต้องการเชื่อมค่าจากคอลัมน์และคอลัมน์ใดๆ ที่มีค่า NULL เป็นค่าของมัน เพื่อให้เข้าใจ เราพิจารณาตัวอย่างจากตาราง 'Student_name; ซึ่งมีข้อมูลดังต่อไปนี้ −

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)

ตอนนี้ สมมติว่าถ้าเราต้องการเชื่อมค่าของคอลัมน์ Fname, Mname และ Lname ต่อไปนี้จะเป็นผลลัพธ์ -

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

แต่ถ้าเราจะใช้ฟังก์ชัน CONCAT_WS() ก็จะไม่สนใจค่า NULL เหมือนที่ทำในแบบสอบถามต่อไปนี้ -

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)