MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函數(shù)的用法解讀
MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函數(shù)
IF()
IF(expr1,expr2,expr3):
如果expr1的值為true,則返回expr2的值,如果expr1的值為false,則返回expr3的值。類似三目運(yùn)算符
IFNULL()
IFNULL(expr1,expr2):
如果expr1的值為null,則返回expr2的值,如果expr1的值不為null,則返回expr1的值。
NULLIF()
NULLIF(expr1,expr2):
如果expr1=expr2成立,那么返回值為null,否則返回值為expr1的值。
SELECT NULLIF('A','A'); -- 輸出結(jié)果:null
SELECT NULLIF('A','B'); -- 輸出結(jié)果:AISNULL()
ISNULL(expr):
如果expr的值為null,則返回1,如果expr1的值不為null,則返回0。
SELECT ISNULL(NULL); -- 輸出結(jié)果:1
SELECT ISNULL('HELLO'); -- 輸出結(jié)果:0INSTR()
INSTR函數(shù)為字符查找函數(shù),其功能是查找一個字符串在另一個字符串中首次出現(xiàn)的位置。
在此函數(shù)中可以自定義查找的初始位置,與出現(xiàn)次數(shù)的位置。
在一些特定的sql查詢中可以替換like進(jìn)行模糊查詢,可以代替in判斷包含關(guān)系
- 在abcd中查找a的位置,從第一個字母開始查,查找第一次出現(xiàn)時的位置
select instr(‘a(chǎn)bcd','a',1,1) from dual; —1 select instr(‘a(chǎn)bcd','c',1,1) from dual; —3 select instr(‘a(chǎn)bcd','e',1,1) from dual; —0
- 應(yīng)用于模糊查詢:instr(字段名/列名, ‘查找字段’)
select code,name,dept,occupation from staff where instr(code, ‘001')> 0;
- 等同于
select code, name, dept, occupation from staff where code like ‘%001%' ;
- 應(yīng)用于判斷包含關(guān)系:
select ccn,mas_loc from mas_loc where instr(‘FH,FHH,FHM',ccn)>0;
- 等同于
select ccn,mas_loc from mas_loc where ccn in (‘FH','FHH','FHM');
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
- Mysql中isnull,ifnull,nullif的用法及語義詳解
- MySQL中NULLIF?、IFNULL、IF的用法和區(qū)別舉例詳解
- MySql中的IFNULL、NULLIF和ISNULL用法詳解
- MySQL流程控制IF()、IFNULL()、NULLIF()、ISNULL()函數(shù)的使用
- MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函數(shù)的使用詳解
- mysql中null(IFNULL,COALESCE和NULLIF)相關(guān)知識點(diǎn)總結(jié)
- MySql中的IFNULL、NULLIF和ISNULL用法詳解
- MYSQL中IFNULL和NULLIF函數(shù)的區(qū)別小結(jié)
相關(guān)文章
Mysql備份多個數(shù)據(jù)庫代碼實(shí)例
這篇文章主要介紹了Mysql備份多個數(shù)據(jù)庫代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
mysql8.0.43使用InnoDB?Cluster配置主從復(fù)制
本文主要介紹了mysql8.0.43使用InnoDB?Cluster配置主從復(fù)制,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-09-09
MySQL 常見的數(shù)據(jù)表設(shè)計(jì)誤區(qū)匯總
雖然會有一些常規(guī)意義上的數(shù)據(jù)表錯誤設(shè)計(jì)和優(yōu)秀設(shè)計(jì)原則,但是同樣也會有 MySQL 特定的一些情況,這會導(dǎo)致我們犯一些 MySQL 特定的錯誤。本篇討論常見的設(shè)計(jì)誤區(qū)。2021-06-06
MySQL InnoDB 鎖的相關(guān)總結(jié)
這篇文章主要介紹了MySQL InnoDB 鎖的相關(guān)知識總結(jié),幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下2021-02-02
MySQL 8.0找不到 my.ini 配置文件(并開啟 Binlog 
本文主要介紹了MySQL 8.0找不到 my.ini 配置文件(并開啟 Binlog 監(jiān)聽),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-06-06

