MySQL IF語句語法示例講解

2021-12-30 06:37:35 字數 2003 閱讀 2739

mysqlif語句允許您根據表示式的某個條件或值結果來執行一組sql語句。 要在mysql中形成乙個表示式,可以結合文字,變數,運算子,甚至函式來組合。表示式可以返回true,false或null,這三個值之一。

請注意,有乙個if函式與本教程中指定的if語句是不同的。

下面說明了if語句的語法:

if expression then

statements;

end if;

sql如果表示式(expression)計算結果為true,那麼將執行statements語句,否則控制流將傳遞到end if之後的下乙個語句。

以下流程圖演示了if語句的執行過程:

如果表示式計算結果為false時執行語句,請使用if else語句,如下所示:

if expression then

statements;

else

else-statements;

end if;

sql以下流程圖說明了if else語句的執行過程:

如果要基於多個表示式有條件地執行語句,則使用if elseif else語句如下:

if expression then

statements;

elseif elseif-expression then

elseif-statements;

...else

else-statements;

end if;

sql如果表示式(expression)求值為true,則if分支中的語句(statements)將執行;如果表示式求值為false,則如果elseif_expression的計算結果為true,mysql將執行elseif-expression,否則執行else分支中的else-statements語句。具體流程如下 -

以下示例說明如何使用if esleif else語句,getcustomerlevel()儲存過程接受客戶編號和客戶級別的兩個引數。

首先,它從customers表中獲得信用額度

然後,根據信用額度,它決定客戶級別:platinum,gold和silver。

引數p_customerlevel儲存客戶的級別,並由呼叫程式使用。

use yiibaidb;

delimiter $$

create procedure getcustomerlevel(

in p_customernumber int(11),

out p_customerlevel varchar(10))

begin

declare creditlim double;

select creditlimit into creditlim

from customers

where customernumber = p_customernumber;

if creditlim > 50000 then

set p_customerlevel = 'platinum';

elseif (creditlim <= 50000 and creditlim >= 10000) then

set p_customerlevel = 'gold';

elseif creditlim < 10000 then

set p_customerlevel = 'silver';

end if;

end$$

sql以下流程圖演示了確定客戶級別的邏輯 -

mysql if語句簡介

mysql 的 if 既可以作為表示式用,也可以在儲存過程中作為流程控制語句使用,如下是作為表示式使用 if 表示式 if expr1,expr2,expr3 如果 expr1 是true expr1 0 and expr1 null 則 if 的返回值為 expr2 否則返回值則為 expr3。i...

Oracle之索引的概念 語法等示例講解

一 概念 索引是建立在資料庫表中的某些列的上面,是與表關聯的,可提供快速訪問資料方式,但會影響增刪改的效率 常用型別 按邏輯分類 單列索引和組合索引 唯一索引和非唯一索引。二 什麼時候需要建立索引 1 在經常需要搜尋 主鍵 連線的列上。2 表很大,記錄內容分布範圍很廣。3 在經常需要根據範圍進行搜尋...

Oracle建立表語句語法詳解及示例

建立表 create table 語法詳解 1.oracle常用的字段型別 oracle常用的字段型別有 varchar2 size 可變長度的字串,必須規定長度 char size 固定長度的字串,不規定長度預設值為 number p,s 數字型p是位數總長度,s是小數的長度,可存負數 最長38位...