set @a='1,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161';
select * from user where id in (@a);
为什么只取到一个?
select * from user where id in (@a);
为什么只取到一个?
PREPARE AA FROM @QQ;
EXEXUTE AA;
set @a='1,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161';
select * from user where find_in_set(id,@a);
http://dev.mysql.com/doc/refman/5.1/zh/stored-procedures.html
函数参数是一个resultfind_in_set();给你个简单例子
DELIMITER $$
drop procedure if exists touch_;
CREATE PROCEDURE `touch_`(IN a varchar(20),IN b varchar(20),IN c varchar(20)) BEGIN
SET a ="3";
SET b ="2";
SET v ="1"; set @v_flag = concat("select * from t where id!=",a," and id!=",b," and id!=",c);
prepare ee from @v_flag;
EXECUTE ee ;
DEALLOCATE PREPARE ee;
END$$
call touch_(‘1’,’2’,’3’);
存储过程只能在begin 和end 之间设置变量值