下面的應用有使用引數
1.用if...then...elseif...
delimiter $$
drop procedure if exists `demodb`.`sp2` $$
create procedure `sp2`(in pid varchar(10))
begin
/*declare strsql varchar(100); */
if pid="1" then
prepare stmt from 'select * from tablea ';
elseif pid="2" then
prepare stmt from 'select * from tableb' ;
else
prepare stmt from 'select * from tablec' ;
end if
; /*prepare stmt from strsql; */
execute stmt
; end $$
delimiter ;
2.用case...when...then...
上面begin...end中的可以用case改寫,如下:
begin
/*declare strsql varchar(100);*/
case pid
when "1" then
prepare stm from "select * from tablea";
when "2" then
prepare stm from "select * from tableb";
when "3" then
prepare stm from "select * from tablec";
else
prepare stm from "select * from tabled";
end case
;execute stm
;3.1的簡化式:
ifpid="1"
then
set @sql=
'select * from tablea '
;elseif
pid="2"
then
set @sql=
'select * from tableb'
;else
set @sql=
'select * from tablec'
;end if
;prepare stmt from @sql;
execute stmt ;
4.2的簡化式:
case
pidwhen
"1"
then
set @sql=
"select * from tablea"
;when
"2"
then
set @sql=
"select * from tableb"
;when
"3"
then
set @sql=
"select * from tablec"
;else
set @sql=
"select * from tabled"
;end case
;prepare stm from @sql;
execute stm;
p.s.儘管
declare strsql varchar(100);若將@sql換為strsql在上面好像不能通過,但在下面的句子中執行ok
declare strsql varchar(100);
case
pidwhen
"1"
then
set strsql=
"select * from tablea"
;when
"2"
then
set strsql=
"select * from tableb"
;when
"3"
then
set strsql=
"select * from tablec"
;else
set strsql=
"select * from tabled"
;end case
;select strsql;
mysql儲存過程應用 MySQL儲存過程使用解析
mysql儲存過程 儲存過程 stored procedure 是一種在資料庫中儲存複雜程式,以便外部程式呼叫的一種資料庫物件。目的是為了完成特定功能的sql語句集,經編譯建立並儲存在資料庫中,使用者可通過指定儲存過程的名字並給定引數 需要時 來呼叫執行。說白了就是資料庫 sql語言層面的 封裝與重...
mysql儲存過程 MySQL儲存過程
在本節中,您將逐步學習如何在mysql中編寫和開發儲存過程。首先,我們向您介紹儲存過程的概念,並討論何時使用它。然後,展示如何使用過程 的基本元素,如建立儲存過程的語句,if else,case,loop,儲存過程的引數。下面每個教程都包含了易於理解的示例和詳細的說明。如果您瀏覽並學習所有教程,您可...
mysql 儲存過程 mysql 儲存過程
建立 為建立儲存過程的結束標誌,使用delimiter 可更改標誌 格式create procedure begin sqlend create procedure myprocedure in param integer begin select from tb role where tb rol...
mysql 儲存過程 MySQL儲存過程
目錄 儲存過程 簡介是一組為了完成特定功能的sql語句集合 比傳統sql速度更快 執行效率更高 儲存過程的優點 執行一次後,會將生成的二進位制 駐留緩衝區,提高執行效率 sql語句加上控制語句的集合,靈活性高 在伺服器端儲存,客戶端呼叫時,降低網路負載 可多次重複被呼叫,可隨時修改,不影響客戶端呼叫...
mysql 儲存過程 應用儲存過程的優點與缺點
總結下使用儲存過程的優缺點 一 儲存過程優點 儲存過程是一組預先建立並用指定的名稱儲存在資料庫伺服器上的 sql 語句,將使用比較頻繁或者比較複雜的操作,預先用 sql 語句寫好並儲存起來,以後當需要資料庫提供相同的服務時,只需再次執行該儲存過程。1.具有更好的效能 儲存過程是預編譯的,只在建立時進...