MySQL NULL 值如何處理?

2021-09-24 15:04:36 字數 3981 閱讀 6439

我們已經知道 mysql 使用 sql select 命令及 where 子句來讀取資料表中的資料,但是當提供的查詢條件欄位為 null 時,該命令可能就無法正常工作。

為了處理這種情況,mysql提供了三大運算子:

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 運算子。

在命令提示符中使用 null

以下例項中假設資料庫 aliyun 中的表aliyun_test_tbl 含有兩列aliyun_author 和 aliyun_count, aliyun_count 中設定插入null值。

例項

嘗試以下例項:

建立資料表 runoob_test_tbl

root@host# mysql -u root -p password;enter password:*******mysql> use openketang;

database changedmysql> create table openketang_test_tbl

-> ( -> openketang_author varchar(40) not null,

-> openketang_count  int    -> );

query ok, 0 rows affected (0.05 sec)mysql>

insert into openketang_test_tbl (openketang_author, openketang_count) values ('openketang', 20);

mysql> insert into openketang_test_tbl (openketang_author, openketang_count)

values ('阿里雲大學', null);

mysql> insert into openketang_test_tbl (openketang_author, openketang_count)

values ('google', null);

mysql> insert into openketang_test_tbl (openketang_author, openketang_count)

values ('fk', 20);

mysql> select * from openketang_test_tbl;

+---------------+--------------+

| openketang_author | openketang_count |

+---------------+--------------+

| openketang        | 20           |

| 阿里雲大學  | null         |

| google        | null         |

| fk            | 20           |

+---------------+--------------+

4 rows in set (0.01 sec)

以下例項中你可以看到 = 和 != 運算子是不起作用的:

mysql> select * from openketang_test_tbl where openketang_count = null;

empty set (0.00 sec)mysql> select * from openketang_test_tbl where openketang_count != null;

empty set (0.01 sec)

查詢資料表中 runoob_test_tbl 列是否為 null,必須使用 is null 和 is not null,如下例項:

mysql> select * from openketang_test_tbl where openketang_count is null;

+---------------+--------------+

| openketang_author | openketang_count |

+---------------+--------------+

| 阿里雲大學  | null         |

| google        | null         |

+---------------+--------------+

2 rows in set (0.01 sec) mysql> select * from openketang_test_tbl where

openketang_count is not null;

+---------------+--------------+

| openketang_author | openketang_count |

+---------------+--------------+

| openketang        | 20           |

| fk            | 20           |

+---------------+--------------+

2 rows in set (0.01 sec)

使用 php指令碼處理 nullphp 指令碼中你可以在 if...else 語句來處理變數是否為空,並生成相應的條件語句。

以下例項中 php 設定了 $aliyun_count 變數,然後使用該變數與資料表中的 aliyun_count 字段進行比較:

mysql order by 測試:

<?php $dbhost = 'localhost:3306'; 

// mysql伺服器主機位址$dbuser = 'root';           

// mysql使用者名稱$dbpass = '123456';         

// mysql使用者名稱密碼$conn = mysqli_connect($dbhost, $dbuser, $dbpass);

if(! $conn )

// 設定編碼,防止中文亂碼

mysqli_query($conn , "set names utf8");

if( isset($openketang_count ))

else

mysqli_select_db( $conn, 'openketang' );

$retval = mysqli_query( $conn, $sql );

if(! $retval )

echo '阿里雲大學 is null 測試';

echo '作者

登陸次數

';while($row = mysqli_fetch_array($retval, mysql_assoc)) ". ".

"";}echo '';mysqli_close($conn);?>

輸出結果如下圖所示:

全部mysql教程:阿里雲大學——開發者課堂

MySQL NULL 值處理(整理)

mysql 使用 sql select 命令及 where 子句來讀取資料表中的資料時,當提供的查詢條件欄位為 null 時,該命令可能就無法正常工作。為了處理這種情況,mysql提供了三大運算子 因為關於 null 的條件比較運算是比較特殊的。不能使用 null 或 null 在列中查詢 null...

MySQL NULL 值處理例項詳解

mysql null 值處理 我們已經知道mysql使用 sql select 命令及 where 子句來讀取資料表中的資料,但是當提供的查詢條件欄位為 null 時,該命令可能就無法正常工作。為了處理這種情況,mysql提供了三大運算子 關於 null 的條件比較運算是比較特殊的。你不能使用 nu...

理論小知識 MySQL NULL 值處理

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