1. 程式人生 > >MySQL NULL值 處理

MySQL NULL值 處理

MySQL提供了三大運算子來處理NULL值:

    ·IS NULL:當列的值是NULL,此運算子返回true;

    ·IS NOT NULL:當列的值不為NULL,此運算子返回true;

    ·<=>:比較操作符(不同於=運算子),當比較的兩個值為NULL時返回true;

關於NULL的條件比較運算子是比較特殊的。不能使用=NULL或!=NULL在列中查詢NULL值。

在MySQL中, NULL值與任何其他值的比較(即使是NULL)永遠返回false,即NULL=NULL返回false。

MySQL中處理NULL使用IS NULL 和 IS NOT NULL 運算子。

例項

[email protected]# 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           |
+---------------+--------------+
   以下例項中你可以看到 = 和 != 運算子是不起作用的:
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)

   查詢資料表中 runoob_test_tbl 列是否為 NULL,必須使用 IS NULL 和 IS NOT NULL,如下例項:
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)

使用PHP指令碼處理NULL值

<?php
$dbhost = 'localhost:3306';  // mysql伺服器主機地址
$dbuser = 'root';            // mysql使用者名稱
$dbpass = '123456';          // mysql使用者名稱密碼
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
    die('連線失敗: ' . mysqli_error($conn));
}
// 設定編碼,防止中文亂碼
mysqli_query($conn , "set names utf8");
 
if( isset($runoob_count ))
{
   $sql = "SELECT runoob_author, runoob_count
           FROM  runoob_test_tbl
           WHERE runoob_count = $runoob_count";
}
else
{
   $sql = "SELECT runoob_author, runoob_count
           FROM  runoob_test_tbl
           WHERE runoob_count IS NULL";
}
mysqli_select_db( $conn, 'RUNOOB' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
    die('無法讀取資料: ' . mysqli_error($conn));
}

echo '<table border="1"><tr><td>作者</td><td>登陸次數</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQL_ASSOC))
{
    echo "<tr>".
         "<td>{$row['runoob_author']} </td> ".
         "<td>{$row['runoob_count']} </td> ".
         "</tr>";
}
echo '</table>';
mysqli_close($conn);
?>


相關推薦

吳裕雄 20-MySQL NULL 處理

MySQL NULL 值處理我們已經知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句來讀取資料表中的資料,但是當提供的查詢條件欄位為 NULL 時,該命令可能就無法正常工作。為了處理這種情況,MySQL提供了三大運算子:IS NULL: 當列的值是 NULL,此運算子返回 true。IS

DB-MySQLMySQL NULL 處理

ylbtech-DB-MySQL:MySQL NULL 值處理   1.返回頂部 1、 MySQL NULL 值處理 我們已經知道 MySQL 使用 SQL SELECT 命令及 WHERE

MySQL NULL 處理(轉自https://www.w3cschool.cn/mysql/mysql-null.html)

MySQL NULL 值處理 我們已經知道MySQL使用 SQL SELECT 命令及 WHERE 子句來讀取資料表中的資料,但是當提供的查詢條件欄位為 NULL 時,該命令可能就無法正常工作。 為了處理這種情況,MySQL提供了三大運算子: IS NULL: 當列的值是NULL,此運算子返回true。IS

MySQL NULL 處理

MySQL提供了三大運算子來處理NULL值:     ·IS NULL:當列的值是NULL,此運算子返回true;     ·IS NOT NULL:當列的值不為NULL,此運算子返回true;  

MySQL UNION、排序、分組、連線、NULL處理和正則表示式

UNION SQL UNION 下面的SQL語句從product和orderdetail表中選取所有不同的pCode(只有不同值) SELECT pCode FROM product UNION SELECT pCode FROM orderdetail ORDER BY p

MySQL UNION、排序、分組、連線、NULL處理和正則表示式

UNION SQL UNION 下面的SQL語句從product和orderdetail表中選取所有不同的pCode(只有不同值) SELECT pCode FROM product UNION SEL

Mysql整數運算NULL處理注意點

CleverCode最近在匯出報表的時候,在整數做減法的時候,發現整數減去null得到是null。這是一個細節問題,希望大家以後注意。 1 表中的資料 total,used都是整形,允許為空。 2 有問題的運算語句 減法問題 select id, total,

MySQ學習筆記之十 NULL處理

con pop -a 能夠 第一個 ips ng- 索引 one 這是MySQL一大特殊之處。 概念上。NULL意味著“沒有值”或“未知值”,且它被看作有點與眾不同的值。為了測試NULL。你不能使用算術比較

fastjson null 處理

put 解析 title json.js itl con pen rgs ash 偶然用到fastjson轉換json 在前臺用js解析竟然某些字段沒有,曾經用過gson。聯想到是不是相似gson默認將null值不顯示了,找了下資料果真如此 直接上代碼

【手記】sql報“聚合或其他set操作消除了null處理

很多 targe null .com log 蛋疼 logs color isn 這個警告在常規場景中沒什麽影響,但如果是用excel跑SQL,它會因為該警告阻止你的後續操作~事實上excel執行sql限制多多,需要更多的奇技淫巧,之前我就寫過一篇。言歸正傳,要解決這個警告

freeMaker null處理

以下引用官方描述:  引用 The FreeMarker template language doesn't know the Java language null at all. It doesn't have null keyword, and it can't test if

mysql-5null處理

值為null遇到的問題: 1.使用select對資料進行處理時,如果有格值為null,該命令會無法正常工作。如示例一 2.使用where限定條件時,null值不能處理。如示例二 -- 新建一張表,並填入資料 create table `csj_class`(`id` INT,`name` varchar(2

mysql處理

如函式   CREATE DEFINER=`root`@`localhost` FUNCTION `aaaaa`( product_code_ varchar(20) ) RETURNS int(11) BEGIN DE

SQL中AVG()、COUNT()、SUM()等函式對NULL處理

原文連結:https://blog.csdn.net/whaxrl/article/details/51195241 一、AVG() 求平均值 注意AVE()忽略NULL值,而不是將其作為“0”參與計算 二、COUNT() 兩種用法 1、COUNT

MySQL NULL特性

NULL是一種“沒有型別”的值,通常表示“無值”,“未知值”,“缺失值”,“超界”,“不在其中”等,我們在日常運用中很容易和NULL字串混淆,這裡大致整理了下NULL值的一些特性,以便能夠正確使用NULL值。 1,建立表時欄位時若未新增預設值,則預設為NULL值   2,NULL值和NUL

jsonconvert null處理 datetime處理

      /// <summary>         /// 將物件轉換成json字串         /// </summary>         /// <param name="obj">物件</param>   

mysql NULL 求和問題

今天一個同事問我一個問題,他執行一條如下的求和的sql語句: select sum(a + b + c + d),sum (a),sum(b),sum(c),sum(d) from T ; 結果是:11,3,5,3,5,也就是 放在一塊求和分別求和,結果不一致, 剛一看問

Oracle資料庫order by排序之null處理方法

最近在忙活公司產品後臺的資料報表,在對業務資料排序時候,發現有些欄位的記錄是null值,這時排序便出現了有違我們使用習慣的資料大小順序問題。在Oracle中規定,在Order by排序時預設認為null是最大值,所以如果是ASC升序則被排在最後,而DESC降序則排在最前。

Spring boot + MyBatis返回map中null處理

在日常開發中,查詢資料返回型別為map,資料庫中有些自動值為null,則返回的結果中沒有值為空的欄位,則如何顯示值為空的欄位呢?1.xml檔案:<resultMapid="userLoginInfo"type="map">  <resultcolumn="u

MySQL日期字串轉換成NULL的異常處理

1,YYYYmmdd格式日期轉換為null 看如下記錄,一個能取到值,一個取不到值** mysql> SELECT DATE_FORMAT(STR_TO_DATE(‘20150922 13:01:01’, ‘%Y%m%d %H:%m:%s’),’%H: