MySQL NULL處理

來源:互聯網
上載者:User

標籤:

-- 首先在使用者表中插入資料如下

TRUNCATE TABLE UserInfo ; 

INSERT  INTO `userinfo`(`ID`,`UserName`,`UserLogin`,`UserPassword`,`UserEmail`,`UserType`)

VALUES (1,‘張三‘,‘zhangsan‘,‘zhangsan‘,‘[email protected]‘,1),

(2,‘李四‘,‘lisi‘,‘lisi‘,‘[email protected]‘,2),

(3,‘王五‘,‘wangwu‘,‘wangwu‘,‘[email protected]‘,1),

(4,‘趙六‘,‘zhaoliu‘,‘zhaoliu‘,‘[email protected]‘,3),

(5,‘趙六‘,‘zhaoliu1‘,‘zhaoliu1‘,‘[email protected]‘,3),

(6,NULL,‘test1‘,‘test1‘,NULL,NULL),

(7,NULL,‘test2‘,‘test2‘,NULL,NULL),

(8,NULL,‘test3‘,‘test3‘,NULL,NULL),

(9,‘‘,‘TEST5‘,‘TEST5‘,‘‘,1),

(10,‘‘,‘TEST6‘,‘TEST6‘,‘‘,2),

(11,‘‘,‘TEST7‘,‘TEST7‘,‘‘,3),

(12,‘‘,‘TEST8‘,‘TEST8‘,‘‘,1),

(13,‘‘,‘TEST9‘,‘TEST9‘,‘‘,2),

(14,‘‘,‘TEST0‘,‘TEST0‘,‘‘,3); 

 

  

-- 查詢使用者名稱為空白(null)的使用者資訊

SELECT * FROM UserInfo WHERE userName IS NULL ;

 

 

SELECT * FROM UserInfo WHERE ISNULL(UserName) ;

 

 

-- 查詢使用者名稱為空白字串(‘‘) 的使用者資訊

SELECT * FROM UserInfo WHERE UserName =‘‘ ;

 

  

-- 查詢使用者名稱為 不為空白(null)的使用者資訊    !=null 和 is not null 是不同的 預設情況下 !=null 返回0行結果 

篩選非空的時候經常會用到is not null和!=null,這兩種方法單從字面上來看感覺是差不多的,其實運行結果差別很大!

null 表示什麼也不是, 不能=、>、< … 所有的判斷,結果都是false,所有只能用 is null進行判斷。預設情況下,推薦使用 is not null去判斷,因為SQL預設情況下對 !=null 的判斷會永遠返回0行,但沒有語法錯誤;

 

SELECT * FROM UserInfo WHERE userName IS NOT NULL ;

 

  

SELECT * FROM UserInfo WHERE UserName != NULL ; 

 

 

-- 查詢使用者名稱 不為空白字串(‘‘) 並且不為空白(null) 的使用者資訊

SELECT * FROM UserInfo WHERE UserName <> ‘‘ ; 

 

  

-- 還有一個問題就是count(columnName)函數是不統計null值的

SELECT COUNT(*) FROM UserInfo ;

 

  

SELECT COUNT(UserName) FROM UserInfo ;

 

  

-- IFNULL函數使用

-- IFNULL(expr1,expr2)  如果expr1不是NULL,返回expr1,否則它返回expr2。

SELECT *,IFNULL(UserName,‘無效使用者‘) AS Remark FROM UserInfo

 

  

SELECT IFNULL(0,1) ;

  

 

SELECT IFNULL(0/1,‘代替null‘) ;.

 

 

SELECT IFNULL(1/0,‘代替null‘) ;

 

 

 

-- 擴充IF函數

-- IF(expr1,expr2,expr3)  如果expr1是TRUE(expr1<>0且expr1<>NULL),返回expr2,否則它返回expr3。 

SELECT IF(TRUE,‘true值‘,‘false值‘) ;

 

 

SELECT IF(FALSE,‘true值‘,‘false值‘) ;

 

 

SELECT IF(1>2,1,2) ;

 

 

SELECT IF(1<2,2,1) ;

 

 

MySQL NULL處理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.