Mysql數(shù)據(jù)庫If語句的使用

MySQL的if既可以作為表達(dá)式用,也可在存儲(chǔ)過程中作為流程控制語句使用,如下是做為表達(dá)式使用:
IF表達(dá)式
IF(expr1,expr2,expr3)

[如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),則 IF()的返回值為expr2; 否則返回值則為 expr3。IF() 的返回值為數(shù)字值或字符串值,具體情況視其所在語境而定。

select if(sva=1,"男","女") as ssva from taname where id = '111';

作為表達(dá)式的if也可以用CASE when來實(shí)現(xiàn):

    select CASE sva WHEN 1 THEN '男' ELSE '女' END as ssva from taname where id = '1'  ;

在第一個(gè)方案的返回結(jié)果中, value=compare-value。而第二個(gè)方案的返回結(jié)果是第一種情況的真實(shí)結(jié)果。如果沒有匹配的結(jié)果值,則返回結(jié)果為ELSE后的結(jié)果,如果沒有ELSE 部分,則返回值為 NULL。

 SELECT CASE 1 WHEN 1 THEN 'one'  
  WHEN 2 THEN 'two'   
   ELSE 'more' END  
as testCol 

作為表達(dá)式的if也可以用CASE when來實(shí)現(xiàn):

將輸出one

IFNULL(expr1,expr2)

假如expr1 不為 NULL,則 IFNULL() 的返回值為 expr1; 否則其返回值為 expr2。IFNULL()的返回值是數(shù)字或是字符串,具體情況取決于其所使用的語境。

    mysql> SELECT IFNULL(1,0);  
            -> 1  
    mysql> SELECT IFNULL(NULL,10);  
            -> 10  
    mysql> SELECT IFNULL(1/0,10);  
            -> 10  
    mysql> SELECT IFNULL(1/0,'yes');  
            -> 'yes'  

IFNULL(expr1,expr2) 的默認(rèn)結(jié)果值為兩個(gè)表達(dá)式中更加“通用”的一個(gè),順序?yàn)镾TRING、 REAL或 INTEGER。

IF ELSE 做為流程控制語句使用

if實(shí)現(xiàn)條件判斷,滿足不同條件執(zhí)行不同的操作,這個(gè)我們只要學(xué)編程的都知道if的作用了,下面我們來看看mysql 存儲(chǔ)過程中的if是如何使用的吧。

    IF search_condition THEN   
        statement_list    
    [ELSEIF search_condition THEN]    
        statement_list ...    
    [ELSE   
        statement_list]    
    END IF   

與PHP中的IF語句類似,當(dāng)IF中條件search_condition成立時(shí),執(zhí)行THEN后的statement_list語句,否則判斷ELSEIF中的條件,成立則執(zhí)行其后的statement_list語句,否則繼續(xù)判斷其他分支。當(dāng)所有分支的條件均不成立時(shí),執(zhí)行ELSE分支。search_condition是一個(gè)條件表達(dá)式,可以由“=、<、<=、>、>=、!=”等條件運(yùn)算符組成,并且可以使用AND、OR、NOT對多個(gè)表達(dá)式進(jìn)行組合。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • mysql 的 if 既可以作為表達(dá)式用,也可以在存儲(chǔ)過程中作為流程控制語句使用,如下是作為表達(dá)式使用: if 表...
    itdreamz閱讀 38,916評論 0 3
  • 數(shù)據(jù)庫概念 定義1 數(shù)據(jù)庫(database)是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲(chǔ)、管理數(shù)據(jù)的建立在計(jì)算機(jī)存儲(chǔ)設(shè)備上的倉庫 ...
    好好秦先生閱讀 1,232評論 0 3
  • 概述:sql語句中的case語句與高級(jí)語言中的switch語句,是標(biāo)準(zhǔn)sql的語法,適用于一個(gè)條件判斷有多種值的情...
    積_漸閱讀 6,658評論 0 4
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,725評論 0 5
  • 選出表中字符的長度:char_length 計(jì)算那么列字符串長度的sin值 計(jì)算1.57的sin值 為指定的日期添...
    CrazyLiuXP閱讀 617評論 0 1

友情鏈接更多精彩內(nèi)容