儲存過程 mysql版

2021-09-02 01:58:10 字數 2039 閱讀 4941

1.基礎知識

1.1cast函式

cast函式語法規則是:cast(欄位名 as 轉換的型別 ),其中型別可以為:

char[(n)] 字元型 

date 日期型

datetime 日期和時間型

decimal float型

signed int

time 時間型

例子:

表table1

date:2015-11-03 15:31:26

select cast(date as signed) as date from table1;

結果如下:

date:20151103153126
1.2 concat函式

用於將多個字串連線成乙個字串.返回結果為連線引數產生的字串。如有任何乙個引數為null ,則返回值為 null。或許有乙個或多個引數。 如果所有引數均為非二進位制字串,則結果為非二進位制字串。 如果自變數中含有任一二進位制字串,則結果為乙個二進位制字串。乙個數字引數被轉化為與之相等的二進位制字串格式;若要避免這種情況,可使用顯式型別 cast, 例如: select concat(cast(int_col as char), char_col)

1.3group_concat函式,按照分組把需要連線的值,連線起來

舉例說明:

select * from goods;  

+------+------+

| id| price|

+------+------+

|1 | 10|

|1 | 20|

|1 | 20|

|2 | 20|

|3 | 200 |

|3 | 500 |

+------+------+

6 rows in set (0.00 sec)

以id分組,把price欄位的值在同一行列印出來,逗號分隔(預設)

select id, group_concat(price) from goods group by id;  

+------+--------------------+

| id| group_concat(price) |

+------+--------------------+

|1 | 10,20,20|

|2 | 20 |

|3 | 200,500|

+------+--------------------+

1.4find_in_set函式

find_in_set(parent_id,otempchild) // parent_id 是否在otempchild中

2.儲存過程舉例說明(裡面包含遞迴查詢)

create function getchildrenorg(orgid int)

returns varchar(4000)

begin

declare otemp varchar(4000);

declare otempchild varchar(4000);

set otemp = '';

set otempchild = cast(orgid as char);

while otempchild is not null

doset otemp = concat(otemp,',',otempchild);

select group_concat(id) into otempchild from user where find_in_set(parent_id,otempchild) > 0;

end while;

return otemp;

end//查詢orgid 的所有子orgid

3.呼叫說明

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語句加上控制語句的集合,靈活性高 在伺服器端儲存,客戶端呼叫時,降低網路負載 可多次重複被呼叫,可隨時修改,不影響客戶端呼叫...