當前位置:首頁 » 存儲配置 » mysql存儲過程字元串參數

mysql存儲過程字元串參數

發布時間: 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-22 05:53:09 瀏覽:833
usbwifilinux 發布:2024-11-22 05:48:19 瀏覽:599
輔助存儲器的作用 發布:2024-11-22 05:37:34 瀏覽:89
java反反編譯 發布:2024-11-22 05:30:00 瀏覽:101
消毒液如何配置消毒酒精 發布:2024-11-22 05:29:53 瀏覽:60
oppor9s怎麼加密簡訊 發布:2024-11-22 05:23:53 瀏覽:737
種子百度雲上傳失敗 發布:2024-11-22 05:12:08 瀏覽:5
dmz主機不能訪問 發布:2024-11-22 05:08:24 瀏覽:769
如何下載安卓平板hd 發布:2024-11-22 05:04:27 瀏覽:719
的簡單演算法 發布:2024-11-22 05:01:14 瀏覽:263