国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 霸州市| 项城市| 天台县| 册亨县| 和平县| 台南县| 杂多县| 仙桃市| 康平县| 龙南县| 乌鲁木齐县| 方正县| 庐江县| 新蔡县| 西峡县| 招远市| 上饶市| 青田县| 迁西县| 磴口县| 三河市| 凤凰县| 寻乌县| 中卫市| 神农架林区| 新化县| 滨海县| 云浮市| 广昌县| 增城市| 且末县| 宜昌市| 图木舒克市| 盐池县| 洛南县| 芷江| 彭山县| 涪陵区| 西华县| 桦南县| 虹口区|