MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函數(shù)的用法解讀
MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函數(shù)
IF()
IF(expr1,expr2,expr3):
如果expr1的值為true,則返回expr2的值,如果expr1的值為false,則返回expr3的值。類似三目運算符
IFNULL()
IFNULL(expr1,expr2):
如果expr1的值為null,則返回expr2的值,如果expr1的值不為null,則返回expr1的值。
NULLIF()
NULLIF(expr1,expr2):
如果expr1=expr2成立,那么返回值為null,否則返回值為expr1的值。
SELECT NULLIF('A','A'); -- 輸出結果:null SELECT NULLIF('A','B'); -- 輸出結果:A
ISNULL()
ISNULL(expr):
如果expr的值為null,則返回1,如果expr1的值不為null,則返回0。
SELECT ISNULL(NULL); -- 輸出結果:1 SELECT ISNULL('HELLO'); -- 輸出結果:0
INSTR()
INSTR函數(shù)為字符查找函數(shù),其功能是查找一個字符串在另一個字符串中首次出現(xiàn)的位置。
在此函數(shù)中可以自定義查找的初始位置,與出現(xiàn)次數(shù)的位置。
在一些特定的sql查詢中可以替換like進行模糊查詢,可以代替in判斷包含關系
- 在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
- 應用于模糊查詢:instr(字段名/列名, ‘查找字段’)
select code,name,dept,occupation from staff where instr(code, ‘001')> 0;
- 等同于
select code, name, dept, occupation from staff where code like ‘%001%' ;
- 應用于判斷包含關系:
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');
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
通過yum方式安裝mySql數(shù)據(jù)庫的全過程
當工作需要部署mysql時,通過手動上傳安裝包以及依賴包的方式安裝mysql會比較麻煩,可以添加官方y(tǒng)um源,來實現(xiàn)自動安裝依賴,方便快捷,下面這篇文章主要給大家介紹了關于通過yum方式安裝mySql數(shù)據(jù)庫的相關資料,需要的朋友可以參考下2022-07-07Mysql| 使用通配符進行模糊查詢詳解(like,%,_)
這篇文章主要介紹了Mysql| 使用通配符進行模糊查詢詳解(like,%,_),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08MySql連接數(shù)據(jù)庫常用參數(shù)及代碼解讀
這篇文章主要介紹了MySql連接數(shù)據(jù)庫常用參數(shù)及代碼解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02