Sifat di atas tidak banyak digunakan, terutamanya apabila kita ingin menggabungkan nilai dalam lajur dan nilai mana-mana lajur adalah NULL. Untuk mengatasi masalah ini kita boleh menggunakan fungsi IFNULL() dan fungsi CONCAT(). Untuk memahaminya, mari kita pertimbangkan contoh daripada jadual "Nama_Pelajar;" Yang mempunyai data berikut -
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)
Sekarang, katakan jika kita ingin menggabungkan nilai lajur Fname, Mname dan Lname, outputnya adalah seperti berikut -
mysql> Select CONCAT(Fname,Mname,Lname)AS Name from Student_Name; +---------------+ | Name | +---------------+ | NULL | | NULL | | NULL | | YashPalSharma | +---------------+ 4 rows in set (0.00 sec)
Walau bagaimanapun, kita tahu bahawa ini bukan output yang berguna kerana sifat-sifat fungsi CONCAT() ialah , jika mana-mana parameter adalah NULL, ia mengembalikan NULL. Kami boleh mengatasi sifat ini dengan bantuan fungsi IFNULL() seperti yang ditunjukkan dalam pertanyaan berikut -
mysql> Select CONCAT(IFNULL(Fname,''),IFNULL(Mname,''),IFNULL(Lname,''))AS Name from Student_Name; +----------------+ | Name | +----------------+ | RahulSingh | | GauravKumar | | HarshitKhurana | | YashPalSharma | +----------------+ 4 rows in set (0.06 sec)
Atas ialah kandungan terperinci Bagaimanakah kita boleh mengatasi sifat fungsi CONCAT() yang mengembalikan NULL jika mana-mana satu argumen adalah NULL, terutamanya apabila kita ingin menggabungkan nilai dalam lajur dan mana-mana nilai lajur adalah NULL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!