看板 Database 關於我們 聯絡資訊
※ 引述《OpenGoodHate (什麼東西什麼東西)》之銘言: : stored procedure 做的事很簡單 : 就只有 : SELECT * FROM aTab WHERE aaa IN (傳入值); : 傳入值是123,456,789 : 但是這樣寫SP沒辦法運作 : 如果是這樣的話該如何處理這樣的問題呢 感謝各位解答 我PO一下我的做法 DELIMITER $$ DROP PROCEDURE IF EXISTS `atest` $$ CREATE DEFINER=`root`@`%` PROCEDURE `atest`( IN `_U` nvarchar(4000) ,OUT `_RTN` INTEGER ) BEGIN set @SQL = CONCAT('SELECT * FROM aTab where aaa IN ( ',_U,' );'); PREPARE _data FROM @SQL; EXECUTE _data; DROP PREPARE _data; SET _RTN = 1; END $$ DELIMITER ; 基本上就把所有的SQL語法先轉成字串 再和外部傳進來的數值串接後執行即可 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.248.166.173 ※ 編輯: OpenGoodHate 來自: 60.248.166.173 (09/30 18:06)