作者OpenGoodHate (什麽东西什麽东西)
看板Database
标题Re: [SQL ] MYSQL中使用stored procedure 传入一连 …
时间Thu Sep 30 18:05:41 2010
※ 引述《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)