當前位置:九游会j9娱乐平台-九游ag登录中心网址 » 存儲配置 » mysql存儲過程字元串參數

mysql存儲過程字元串參數-九游会j9娱乐平台

發布時間: 2024-11-13 15:07:46

⑴ mysql 存儲過程,如何把一個 字元串變成一個 整形數 比如 「33」 變成整數的33

convert(str, signed)

⑵ mysql資料庫中字元串拼接問題

mysql不能直接運行動態sql語句的,但是可以寫在存儲過程中,然後調用過程執行,具體如下:

(1)定義存儲過程,示例:

createdefiner=`root`@`localhost`procedure`query_extra_table`(table_indexvarchar(255))
begin
set@sql=concat("select*fromtbl_order_",table_index);
preparestmtfrom@sql;
executestmt;
end

(2)調用存儲過程:

callquery_extra_table('483')

⑶ mysql存儲過程中分支語句有哪些

存儲過程:
create procere p()
begin
/*thi procere does nothing*/
end;

1.參數
parameters 參數
讓我們更進一步的研究怎麼在存儲過程中定義參數1. create procedure p5
() ...
2. create procedure p5
([in] name data-type) ...
3. create procedure p5
(out name data-type) ...
4. create procedure p5
(inout name data-type) ...

2.conditions and if-then-else 條件式和 if-then-else

3.loops 循環語句
while ... end while
loop ... end loop
repeat ... end repeat
goto

4.declare handler syntax 聲明異常處理的語法
declare
{ exit | continue }
handler for
{ error-number | { sqlstate error-string } | condition }
sql statement

5.cursors 游標
游標實現功能摘要:
declare cursor-name cursor for select ...;
open cursor-name;
fetch cursor-name into variable [, variable];
close cursor-name;
已現經在可我以們完開成始基著本眼的游事標了務如。聲雖明然游我標們,的打存開儲游過標程,中從的游游標標里語法讀取還,並關沒閉有完游整標。

6.functions 函數
summary:
摘要 create function
limitations of functions
函數的限制
我們已經很清楚可以在存儲過程中使用的元素了。下面我要講的是前面沒有提到的函數。

⑷ 創建存儲過程sql語句

1)過程名
存儲過程的名稱,默認在當前資料庫中創建。若需要在特定資料庫中創建存儲過程,則要在名稱前面加上資料庫的名稱,即db_name.sp_name。
需要注意的是,名稱應當盡量避免選取與mysql內置函數相同的名稱,否則會發生錯誤。
2)過程參數
存儲過程的參數列表。其中,<參數名>為參數名,<類型>為參數的類型(可以是任何有效的mysql數據類型)。當有多個參數時,參數列表中彼此間用逗號分隔。存儲過程可以沒有參數(此時存儲過程的名稱後仍需加上一對括弧),也可以有1個或多個參數。
mysql存儲過程支持三種類型的參數,即輸入參數、輸出參數和輸入/輸出參數,分別用in、out和inout三個關鍵字標識。其中,輸入參數可以傳遞給一個存儲過程,輸出參數用於存儲過程需要返回一個操作結果的情形,而輸入/輸出參數既可以充當輸入參數也可以充當輸出參數。

⑸ mysql存儲過程一個參數有多個逗號分割

這個應該可以使用字元串拼接,你是不是這樣寫存儲過程:
create procere p_proc(var_in int)
begin
delete from [tablename] where [colname] in (var_in);

end

然後又這樣調用:
call p_proc(1, 2, 3);
這樣肯定不行,那麼你可以這樣:
create procere p_proc(var_in varchar(5000))
begin

set @sql = concat("delete from [tablename] where [colname] in (", var_in, ")");

prepare stmt_exe_sql from @sql;
execute stmt_exe_sql;
deallocate prepare stmt_exe_sql;
end

這樣就相當於把(1, 2, 3)拼接成語句"delete from [tablename] where [colname] in (1, 2, 3)", 然後執行,就可以刪除了。

⑹ mysql中存儲過程或函數 如何將逗號分隔的字元串倒序輸出 如 :4531,8651,3256 變為: 3256,8651,4531

delimiter//

dropfunctionreversewordby//

createfunctionreversewordby(poldvaltinytext,pdivcharchar(1))
returnstinytext
begin
/**預期結果.**/
declarevresulttinytext;
--當前逗號的位置.
declarevindexint;
--前一個逗號的位置.
declarevprevindexint;

--查詢第一個逗號的位置.
setvindex=instr(poldval,pdivchar);

ifvindex=0then
--參數中沒有逗號,直接返回.
returnpoldval;
endif;

--初始化情況,前一個逗號不存在.
setvprevindex=0;
--初始化結果為空白字元.
setvresult='';

--循環處理。
whilevindex>0do
--設置結果=本次查詢的結果,以前的查詢結果.
setvresult=concat(substring(poldval,vprevindex 1,(vindex-vprevindex-1)),pdivchar,vresult);
--前一個逗號的位置=當前逗號的位置
setvprevindex=vindex;
--查詢下一個逗號的位置.
setvindex=locate(pdivchar,poldval,vprevindex 1);
endwhile;

--最後追加最後一組數據.
setvresult=concat(substring(poldval,vprevindex 1),pdivchar,vresult);

--清除掉最後一個逗號.
setvresult=left(vresult,length(vresult)-1);

--返回結果.
returnvresult;
end;
//


delimiter;

selectreversewordby('4531,8651,3256',',')a;

selectreversewordby('1,12,123,1234,12345,123456',',')b;



輸出結果:

mysql>selectreversewordby('4531,8651,3256',',')a;
----------------
|a|
----------------
|3256,8651,4531|
----------------
1rowinset(0.00sec)

mysql>
mysql>selectreversewordby('1,12,123,1234,12345,123456',',')b;
----------------------------
|b|
----------------------------
|123456,12345,1234,123,12,1|
----------------------------
1rowinset(0.00sec)

⑺ mysql存儲過程一個參數有多個逗號分割

這個應該可以使純笑用字元串拼接,你是不是這樣寫存儲陸昌過程:
create procere p_proc(var_in int)
begin
delete from [tablename] where [colname] in (var_in);

end

然後又這樣調用做悉含:
call p_proc(1, 2, 3);
這樣肯定不行,那麼你可以這樣:
create procere p_proc(var_in varchar(5000))
begin

set @sql = concat("delete from [tablename] where [colname] in (", var_in, ")");

prepare stmt_exe_sql from @sql;
execute stmt_exe_sql;
deallocate prepare stmt_exe_sql;
end

這樣就相當於把(1, 2, 3)拼接成語句"delete from [tablename] where [colname] in (1, 2, 3)", 然後執行,就可以刪除了。

熱點內容
布丁少兒編程 發布:2024-11-19 09:57:11 瀏覽:97
vb資料庫數組 發布:2024-11-19 09:23:40 瀏覽:827
安卓游戲數據保存在哪裡找 發布:2024-11-19 09:22:02 瀏覽:309
解壓出來的文件亂碼 發布:2024-11-19 09:15:40 瀏覽:939
北航ftp是多少 發布:2024-11-19 09:15:32 瀏覽:821
瀏覽保存密碼如何取消 發布:2024-11-19 09:10:17 瀏覽:89
安卓怎麼關簡訊重復提醒 發布:2024-11-19 09:02:00 瀏覽:635
html與php的區別 發布:2024-11-19 09:00:53 瀏覽:193
晚安密碼多少 發布:2024-11-19 09:00:51 瀏覽:945
易語言腳本模塊 發布:2024-11-19 09:00:44 瀏覽:484
网站地图