MySQL 存儲過程傳參數(shù)實現(xiàn)where id in(1,2,3,...)示例
更新時間:2013年10月30日 16:46:25 作者:
一個MySQL 存儲過程傳參數(shù)的問題想實現(xiàn)例如篩選條件為:where id in(1,2,3,...),下面有個不錯的示例,感興趣的朋友可以參考下
正常寫法:
select * from table_name t where t.field1 in (1,2,3,4,...);
當在寫存儲過程in里面的列表用個傳入?yún)?shù)代入的時候,就需要用到如下方式:
主要用到find_in_set函數(shù)
select * from table_name t where find_in_set(t.field1,'1,2,3,4');
當然還可以比較笨實的方法,就是組裝字符串,然后執(zhí)行:
DROP PROCEDURE IF EXISTS photography.Proc_Test;
CREATE PROCEDURE photography.`Proc_Test`(param1 varchar(1000))
BEGIN
set @id = param1;
set @sel = 'select * from access_record t where t.ID in (';
set @sel_2 = ')';
set @sentence = concat(@sel,@id,@sel_2); -- 連接字符串生成要執(zhí)行的SQL語句
prepare stmt from @sentence; -- 預編釋一下。 “stmt”預編釋變量的名稱,
execute stmt; -- 執(zhí)行SQL語句
deallocate prepare stmt; -- 釋放資源
END;
復制代碼 代碼如下:
select * from table_name t where t.field1 in (1,2,3,4,...);
當在寫存儲過程in里面的列表用個傳入?yún)?shù)代入的時候,就需要用到如下方式:
主要用到find_in_set函數(shù)
復制代碼 代碼如下:
select * from table_name t where find_in_set(t.field1,'1,2,3,4');
當然還可以比較笨實的方法,就是組裝字符串,然后執(zhí)行:
復制代碼 代碼如下:
DROP PROCEDURE IF EXISTS photography.Proc_Test;
CREATE PROCEDURE photography.`Proc_Test`(param1 varchar(1000))
BEGIN
set @id = param1;
set @sel = 'select * from access_record t where t.ID in (';
set @sel_2 = ')';
set @sentence = concat(@sel,@id,@sel_2); -- 連接字符串生成要執(zhí)行的SQL語句
prepare stmt from @sentence; -- 預編釋一下。 “stmt”預編釋變量的名稱,
execute stmt; -- 執(zhí)行SQL語句
deallocate prepare stmt; -- 釋放資源
END;
相關文章
解決MySQL8.0 輸入無誤仍然提示Access denied問題
這篇文章主要介紹了解決MySQL8.0 輸入無誤仍然提示Access denied問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05mysql數(shù)據(jù)庫在表中添加數(shù)據(jù)三種操作方式
這篇文章主要介紹了mysql數(shù)據(jù)庫在表中添加數(shù)據(jù)三種方式,首先創(chuàng)建數(shù)據(jù)庫和表,創(chuàng)建完成后就可以進行添加數(shù)據(jù)的操作了,本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2023-08-08將MySQL數(shù)據(jù)庫移植為PostgreSQL
PostgreSQL 作為功能最強勁的開源 OO 數(shù)據(jù)庫,仿佛一直不為國內(nèi)用戶所熟識。而我個人也僅是因為工作的緣故接觸到這款超經(jīng)典的數(shù)據(jù)庫,并深為之折服。2009-07-07MySQL性能參數(shù)詳解之Skip-External-Locking參數(shù)介紹
MySQL的配置文件my.cnf中默認存在一行skip-external-locking的參數(shù),即跳過外部鎖定。根據(jù)MySQL開發(fā)網(wǎng)站的官方解釋,External-locking用于多進程條件下為MyISAM數(shù)據(jù)表進行鎖定2016-05-05Mysql插入數(shù)據(jù)方式(insert into 、replace into解析)
這篇文章主要介紹了Mysql插入數(shù)據(jù)方式(insert into 、replace into解析),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01MySQL中的LOCATE和POSITION函數(shù)使用方法
不常用:MySQL中的LOCATE和POSITION函數(shù)2010-02-02