首頁 > 資料庫 > mysql教程 > 我們如何克服 CONCAT() 函數的屬性,即如果任何一個參數為 NULL,它就會傳回 NULL,特別是當我們想要連接列中的值並且任何列的值都是 NULL 時?

我們如何克服 CONCAT() 函數的屬性,即如果任何一個參數為 NULL,它就會傳回 NULL,特別是當我們想要連接列中的值並且任何列的值都是 NULL 時?

王林
發布: 2023-09-07 10:49:02
轉載
1102 人瀏覽過

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

上述屬性沒有什麼用處,特別是當我們想要連接列中的值並且任何列的值為 NULL 時。為了克服這個問題,我們可以使用 IFNULL() 函數和 CONCAT() 函數。為了理解它,我們考慮表格「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() 函數的屬性是,如果任何參數為NULL,它就會回傳NULL。我們可以藉助 IFNULL() 函式克服此屬性,如下列查詢所示 -

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)
登入後複製

以上是我們如何克服 CONCAT() 函數的屬性,即如果任何一個參數為 NULL,它就會傳回 NULL,特別是當我們想要連接列中的值並且任何列的值都是 NULL 時?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板