Rumah > pangkalan data > tutorial mysql > 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?

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?

王林
Lepaskan: 2023-09-07 10:49:02
ke hadapan
1156 orang telah melayarinya

我们如何克服 CONCAT() 函数的属性,即如果任何一个参数为 NULL,它就会返回 NULL,特别是当我们想要连接列中的值并且任何列的值都为 NULL 时?

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan