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
1102 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!

sumber:tutorialspoint.com
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