mysql條件判斷函數(shù)的具體使用
條件判斷函數(shù)也被稱為控制流程函數(shù),根據(jù)滿足的不同條件,執(zhí)行響應(yīng)的流程。mysql中進(jìn)行條件判斷的函數(shù)有if、ifunll和case等。
IF(expr,v1,v2)函數(shù)
IF(expr,v1,v2):如果表達(dá)式expr是TRUE(expr <> 0 and expr <> null),則返回值為V1;否則返回值為V2。
mysql> select if (1>2, 2, 3), if (1<2, 'yes', 'no'); +----------------+-----------------------+ | if (1>2, 2, 3) | if (1<2, 'yes', 'no') | +----------------+-----------------------+ | ? ? ? ? ? ? ?3 | yes ? ? ? ? ? ? ? ? ? | +----------------+-----------------------+ 1 row in set (0.00 sec) mysql>
小提示:
如果V1或者V2中只有一個(gè)明確是null,則if()函數(shù)的結(jié)果類型為非null表達(dá)式的結(jié)果類型。
IFNULL(v1,v2)函數(shù)
ifnull(v1,v2):假如V1不為null,則ifnull()的返回值為v1;否則其返回值為v2。
ifnull()的返回值是數(shù)字或者字符串,具體情況取決于其所在的語境。
mysql> select ifnull(1, 2), ifnull(null, 'yunweijia'), ifnull(1/0, 'heihei'); +--------------+---------------------------+-----------------------+ | ifnull(1, 2) | ifnull(null, 'yunweijia') | ifnull(1/0, 'heihei') | +--------------+---------------------------+-----------------------+ | ? ? ? ? ? ?1 | yunweijia ? ? ? ? ? ? ? ? | heihei ? ? ? ? ? ? ? ?| +--------------+---------------------------+-----------------------+ 1 row in set (0.00 sec) mysql>
CASE函數(shù)
case expr when v1 then r1 [when v2 then 2]...[else rn+1]end:如果expr值等于某個(gè)vn,則返回對(duì)應(yīng)位置then后面的結(jié)果;如果與所有值都不相等,則返回else后面的rn+1。
mysql> select case 2 when 1 then 'one' when '2' then 'two' else 'more' end; +--------------------------------------------------------------+ | case 2 when 1 then 'one' when '2' then 'two' else 'more' end | +--------------------------------------------------------------+ | two ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?| +--------------------------------------------------------------+ 1 row in set (0.00 sec) mysql> mysql> select case 5 when 1 then 'one' when '2' then 'two' else 'more' end; +--------------------------------------------------------------+ | case 5 when 1 then 'one' when '2' then 'two' else 'more' end | +--------------------------------------------------------------+ | more ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | +--------------------------------------------------------------+ 1 row in set (0.00 sec) mysql>
小提示:
可以按照shell中的if語句來理解。
一個(gè)case表達(dá)式的默認(rèn)返回值類型是任何返回值的相容集合類型,但具體情況視其所在語境而定。
到此這篇關(guān)于mysql條件判斷函數(shù)的具體使用的文章就介紹到這了,更多相關(guān)mysql條件判斷 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL數(shù)據(jù)庫優(yōu)化與定期數(shù)據(jù)處理策略
在當(dāng)今數(shù)據(jù)驅(qū)動(dòng)的時(shí)代,數(shù)據(jù)庫作為信息存儲(chǔ)和管理的核心,扮演著至關(guān)重要的角色,本文將探討如何通過一系列有效的策略來優(yōu)化 MySQL 數(shù)據(jù)庫的查詢效率,并實(shí)現(xiàn)定期處理數(shù)據(jù)的機(jī)制,以確保主表中的數(shù)據(jù)保持在合理范圍內(nèi),需要的朋友可以參考下2025-03-03
MySQL之information_schema數(shù)據(jù)庫詳細(xì)講解
這篇文章主要介紹了MySQL之information_schema數(shù)據(jù)庫詳細(xì)講解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
MySQL 多表關(guān)聯(lián)一對(duì)多查詢實(shí)現(xiàn)取最新一條數(shù)據(jù)的方法示例
這篇文章主要介紹了MySQL 多表關(guān)聯(lián)一對(duì)多查詢實(shí)現(xiàn)取最新一條數(shù)據(jù)的方法,結(jié)合實(shí)例形式詳細(xì)分析了MySQL 多表關(guān)聯(lián)一對(duì)多查詢實(shí)現(xiàn)取最新一條數(shù)據(jù)相關(guān)原理、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下2020-05-05
工作中常用的mysql語句分享 不用php也可以實(shí)現(xiàn)的效果
本文給大家介紹幾條比較有用的MySQL的SQL語句,可能很多人都通過PHP來實(shí)現(xiàn)這些功能,其實(shí)數(shù)據(jù)也是能實(shí)現(xiàn)很多功能的2012-05-05
MySql 錯(cuò)誤Incorrect string value for column
能使用中文進(jìn)行搜索,但是insert into 中文是可以的。我的數(shù)據(jù)庫和數(shù)據(jù)表中所有的charset都是設(shè)置的utf8。2010-12-12

