《零基础》MySQL NULL 值处理(二十一)
MySQL 使用 SQL SELECT 命令及 WHERE 子句來讀取數(shù)據(jù)表中的數(shù)據(jù),但是當(dāng)提供的查詢條件字段為 NULL 時(shí),該命令可能就無法正常工作。
為了處理這種情況,MySQL提供了三大運(yùn)算符:
- IS NULL:?當(dāng)列的值是 NULL,此運(yùn)算符返回 true。
- IS NOT NULL:?當(dāng)列的值不為 NULL, 運(yùn)算符返回 true。
- <=>:?比較操作符(不同于 = 運(yùn)算符),當(dāng)比較的的兩個(gè)值相等或者都為 NULL 時(shí)返回 true。
關(guān)于 NULL 的條件比較運(yùn)算是比較特殊的。你不能使用 = NULL 或 != NULL 在列中查找 NULL 值 。
在 MySQL 中,NULL 值與任何其它值的比較(即使是 NULL)永遠(yuǎn)返回 NULL,即 NULL = NULL 返回 NULL 。
MySQL 中處理 NULL 使用 IS NULL 和 IS NOT NULL 運(yùn)算符。
注意:
select * , columnName1+ifnull(columnName2,0) from tableName; columnName1,columnName2 為 int 型,當(dāng) columnName2 中,有值為 null 時(shí),columnName1+columnName2=null, ifnull(columnName2,0) 把 columnName2 中 null 值轉(zhuǎn)為 0。在命令提示符中使用 NULL 值
以下實(shí)例中假設(shè)數(shù)據(jù)庫 RUNOOB 中的表 runoob_test_tbl 含有兩列 runoob_author 和 runoob_count, runoob_count 中設(shè)置插入NULL值。
實(shí)例
嘗試以下實(shí)例:
創(chuàng)建數(shù)據(jù)表 runoob_test_tbl
root@host# mysql -u root -p password; Enter password:******* mysql> use RUNOOB; Database changed mysql> create table runoob_test_tbl-> (-> runoob_author varchar(40) NOT NULL,-> runoob_count INT-> ); Query OK, 0 rows affected (0.05 sec) mysql> INSERT INTO runoob_test_tbl (runoob_author, runoob_count) values ('RUNOOB', 20); mysql> INSERT INTO runoob_test_tbl (runoob_author, runoob_count) values ('菜鳥教程', NULL); mysql> INSERT INTO runoob_test_tbl (runoob_author, runoob_count) values ('Google', NULL); mysql> INSERT INTO runoob_test_tbl (runoob_author, runoob_count) values ('FK', 20);mysql> SELECT * from runoob_test_tbl; +---------------+--------------+ | runoob_author | runoob_count | +---------------+--------------+ | RUNOOB | 20 | | 菜鳥教程 | NULL | | Google | NULL | | FK | 20 | +---------------+--------------+ 4 rows in set (0.01 sec)以下實(shí)例中你可以看到 = 和 != 運(yùn)算符是不起作用的:
mysql> SELECT * FROM runoob_test_tbl WHERE runoob_count = NULL; Empty set (0.00 sec) mysql> SELECT * FROM runoob_test_tbl WHERE runoob_count != NULL; Empty set (0.01 sec)查找數(shù)據(jù)表中 runoob_test_tbl 列是否為 NULL,必須使用?IS NULL?和?IS NOT NULL,如下實(shí)例:
mysql> SELECT * FROM runoob_test_tbl WHERE runoob_count IS NULL; +---------------+--------------+ | runoob_author | runoob_count | +---------------+--------------+ | 菜鳥教程 | NULL | | Google | NULL | +---------------+--------------+ 2 rows in set (0.01 sec)mysql> SELECT * from runoob_test_tbl WHERE runoob_count IS NOT NULL; +---------------+--------------+ | runoob_author | runoob_count | +---------------+--------------+ | RUNOOB | 20 | | FK | 20 | +---------------+--------------+ 2 rows in set (0.01 sec)總結(jié)
以上是生活随笔為你收集整理的《零基础》MySQL NULL 值处理(二十一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《零基础》MySQL DELETE 语句
- 下一篇: android 对话框 重复,如何在An