国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

mysql中CONCAT值為空的問題解決辦法

2024-07-24 12:37:02
字體:
來源:轉載
供稿:網友

在mysql中concat函數有一個特點就是有一個值為null那么不管第二個字符有多少內容都返回為空了,這個特性讓我們在實例應用中可能覺得不方便,但實現就是這樣我們需要使用其它辦法來解決.

在做opencart開發的時候,需要對用戶表中用戶的電話號碼和區號連接起來,于是使用了concat方法,代碼如下:

SELECT CONCAT(isdcode,telephone) FROM gb_customer

竟然發現很多NULL列,telephone明明是有值的,于是查詢了相關concat方法,代碼如下:

mysql CONCAT(str1,str2,…)

返回結果為連接參數產生的字符串,如有任何一個參數為NULL,則返回值為 NULL,或許有一個或多個參數,表中isdcode的值可能為NULL,所以執行后值為空,于是乎使用個IFNULL判斷一下isdcode是否為空,代碼如下:

SELECT CONCAT(IFNULL(isdcode,''),telephone) FROM gb_customer

這個時候就能夠取出來所有的值了,除了這種辦法我們可以默認指定一個值,mysql內置的ifull函數可以用在查詢時候為NULL值字段給一個默認值,代碼如下:

select ifnull(col1, 'default-value'), col2 from test;

當test表的col1字段為NULL時,數據庫返回的結果就為default-value,否則就返回本身的值,但是當col1字段的值為空字符串(”),由于空字符不是NULL,因此返回的結果還是空字符串。如果需要把空字符串或NULL值都用default-value代替,顯然ifnull是不行,不過使用case when語句能搞定,示例如下:

  1. select c1, 
  2. (case when c2 = '' or c2 is null then 'default-value' else  c2 end)  
  3. from test;  //Vevb.com

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 建宁县| 分宜县| 京山县| 景东| 交口县| 信丰县| 兴海县| 海兴县| 射阳县| 增城市| 尼玛县| 日土县| 外汇| 左贡县| 沾益县| 论坛| 济南市| 阳谷县| 突泉县| 新干县| 康定县| 巴林左旗| 梧州市| 苍山县| 岐山县| 牟定县| 崇州市| 嘉义县| 昔阳县| 金塔县| 岳普湖县| 黎城县| 教育| 福建省| 莆田市| 贺州市| 渭源县| 高台县| 宁城县| 长治县| 徐州市|