MySQL ifnull()函数
轉(zhuǎn)載自??MySQL ifnull()函數(shù)
MySQL IFNULL函數(shù)簡介
MySQL?IFNULL函數(shù)是MySQL控制流函數(shù)之一,它接受兩個參數(shù),如果不是NULL,則返回第一個參數(shù)。 否則,IFNULL函數(shù)返回第二個參數(shù)。
兩個參數(shù)可以是文字值或表達(dá)式。
以下說明了IFNULL函數(shù)的語法:
IFNULL(expression_1,expression_2);如果expression_1不為NULL,則IFNULL函數(shù)返回expression_1; 否則返回expression_2的結(jié)果。
IFNULL函數(shù)根據(jù)使用的上下文返回字符串或數(shù)字。
如果要返回基于TRUE或FALSE條件的值,而不是NULL,則應(yīng)使用IF函數(shù)。
MySQL的IFNULL函數(shù)示例
請參見以下IFNULL函數(shù)示例:
示例-1
SELECT IFNULL(1,0); -- returns 1示例-2
SELECT IFNULL('',1); -- returns ''示例-3
SELECT IFNULL(NULL,'IFNULL function'); -- returns IFNULL function上面示例中的語句是怎么運(yùn)行的?
- IFNULL(1,0)返回1,因?yàn)?不為NULL。
- IFNULL('',1)返回'',因?yàn)?#39;'字符串不為NULL。
- IFNULL(NULL,'IFNULL function')返回IFNULL函數(shù)字符串,因?yàn)榈谝粋€參數(shù)為NULL。
我們來看一下使用IFNULL函數(shù)的實(shí)例。
首先,使用以下語句創(chuàng)建一個名為contacts的新表:
USE testdb; CREATE TABLE IF NOT EXISTS contacts (contactid INT AUTO_INCREMENT PRIMARY KEY,contactname VARCHAR(20) NOT NULL,bizphone VARCHAR(15),homephone VARCHAR(15) );每個聯(lián)系人都有一個名字,業(yè)務(wù)電話和家庭電話。
其次,將數(shù)據(jù)插入到contacts表中:
INSERT INTO contacts(contactname,bizphone,homephone) VALUES('John Doe','(541) 754-3009',NULL),('Cindy Minsu',NULL,'(541) 754-3110'),('Sue Greenspan','(541) 754-3010','(541) 754-3011'),('Lily Bush',NULL,'(541) 754-3111');一些聯(lián)系人只有家庭電話或商務(wù)電話。要從contacts表中獲取所有聯(lián)系人姓名和電話,請使用以下查詢:
SELECT contactName, bizphone, homephone FROMcontacts;執(zhí)行上面查詢語句,得到以下結(jié)果 -
+---------------+----------------+----------------+ | contactName | bizphone | homephone | +---------------+----------------+----------------+ | John Doe | (541) 754-3009 | NULL | | Cindy Minsu | NULL | (541) 754-3110 | | Sue Greenspan | (541) 754-3010 | (541) 754-3011 | | Lily Bush | NULL | (541) 754-3111 | +---------------+----------------+----------------+ 4 rows in set如果聯(lián)系人的商務(wù)電話不可用,可以通過查詢獲得聯(lián)系人的家庭電話也是一個獲取聯(lián)系方式的辦法 -
SELECT contactname, IFNULL(bizphone, homephone) phone FROMcontacts;這可以使用IFNULL()函數(shù)來解決。如果bizphone為NULL,則IFNULL函數(shù)將返回homephone的值。
第三,使用以下查詢獲取所有聯(lián)系人的姓名和電話:
mysql> SELECT contactname, IFNULL(bizphone, homephone) phone FROMcontacts; +---------------+----------------+ | contactname | phone | +---------------+----------------+ | John Doe | (541) 754-3009 | | Cindy Minsu | (541) 754-3110 | | Sue Greenspan | (541) 754-3010 | | Lily Bush | (541) 754-3111 | +---------------+----------------+ 4 rows in set請注意,應(yīng)避免在WHERE子句中使用IFNULL函數(shù),因?yàn)樗鼤档筒樵兊男阅堋?/p>
如果要檢查值是否為NULL,則可以在WHERE子句中使用IS NULL或IS NOT NULL。
在本教程中,我們向您介紹了MySQL?IFNULL函數(shù),并向您展示了如何在查詢中使用IFNULL函數(shù)。
總結(jié)
以上是生活随笔為你收集整理的MySQL ifnull()函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VPS9网络提供多种托管选项,包括云、专
- 下一篇: 作家兼平面设计专家史蒂文·海勒谈成功的标