MySQL isnull 函式基本指南

2022-09-20 16:54:09 字數 2113 閱讀 7611

isnull函式接受乙個引數,並測試該引數是否為null。如果引數為null,則isnull函式返回1,否則返回0

下面說明了isnull函式的語法:

isnull(expr)

請考慮以下示例:

select isnull(null); -- 1    

select isnull(1); -- 0

select isnull(1 + null); -- 1;

select isnull(1 / 0 ); -- 1;

請注意,如果您嘗試找到microsoft sql server的isnull函式的mysql替代方法,則應該使用mysql的ifnull函式。 因為isnull函式在mysql中與microsoft sql server的isnull函式是不同的。

isnull函式與is null運算子共享一些行為。 例如,如果您將date型別的列宣告為not null,則可以使用以下語句查詢特殊日期「0000-00-00」

select 

*from

table_name

where

isnull(date);

請注意,mysql故意實現此函式來支援odbc應用程式,因為odbc不支援特殊日期值'0000-00-00'。或者修改以下值為:sql_mode=no_auto_create_user,no_engine_substitution,官方手冊參考:

我們來看下面的乙個例子。

首先,建立乙個名為special_isnull的新錶,如下所示:

use testdb;

drop table if exists special_isnull;

create table special_isnull (

start_date date default null

);

其次,將一些資料插入到special_isnull表中:

insert into special_isnull(start_date) 

values('2000-01-01'),('0000-00-00'),(null);

注意:mysql 5.7 中不允許插入0000-00-00

第三步,使用isnull函式從special_isnull表查詢資料:

select 

*from

special_isnull

where

isnull(start_date);

執行上面查詢語句,得到以下結果 -

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

| start_date |

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

| null |

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

1 row in set

查詢返回一行,而您可能希望返回乙個空結果集。

當您要取消is null運算子時,可以使用not運算子,即is not null。 但是,對於isnull函式,可以使用!isnull

在本教程中,您已經學習了如何使用mysqlisnull函式及其特殊行為來處理null值。

常用基本函式

1 清屏 clc 清除命令視窗 clear command window 清除命令視窗 clear 清除所有變數 clf 清除圖形 舊版本中可以使用 clg 2 隨機數生成 rand n 生成n階隨機方陣,隨機數範圍0 1 rand m,n 生成m n階的隨機矩陣,隨機數範圍0 1 randn n ...

前言 基本函式

wsa是windows socket api簡稱 1 在delphi用這些api時,應先先明 wsastartup 初始 wsacleanup 登出 後面介紹一些簡單函式的使用 我也是學了再寫,說錯的地方指明,這既是自己的筆記 也是大家的參考 2 socket函式 用於生成socket soket ...

Sql Server 基本函式

sql server基本函式 大家在程式設計的時候,絕大多數時是離不開與資料庫打交道的,大家在對資料庫的資料進行處理時,往往是先讀取資料庫的記錄後,然後通過程式語言對其進行加工處理後,再存到資料庫。但有時候通過若sql自帶的函式來對資料進行處理,不但能直接獲取自己所需的結果,還能節省不少自己的程式 ...