BEGIN
DECLARE i INT(8) DEFAULT 2;
DECLARE j INT(8) DEFAULT 0;
DECLARE c VARCHAR(15);
DECLARE s VARCHAR(15);
DECLARE t VARCHAR(15);
SET j=LENGTH(id)-LENGTH(REPLACE(id,',',''));
WHILE i<=j
DO
SET c=SUBSTRING_INDEX(SUBSTRING_INDEX(id,',',i),',',-1);
SET s=SUBSTRING_INDEX(SUBSTRING_INDEX(type,',',i),',',-1);
SET t=SUBSTRING_INDEX(SUBSTRING_INDEX(sta,',',i),',',-1);
SELECT p.*,c,s,t,i FROM praise p WHERE pId=c AND pType=s AND pStatue=t;
SET i=i+1;
END WHILE;
END
代码如上,为什么SELECT后面的语句都不执行了,只要执行了一次SELECT语句,后面的就都不执行了! 弄得我一脸懵比,比如I从1开始 J=4,当I=1时,SELECT语句执行了一次,然后循环就断掉了。我的语句哪不对啊。。。
顶!在下数据库白痴,求大神开导啊。
SELECT p.*,c,s,t,i FROM praise p WHERE pId=c AND pType=s AND pStatue=t;
改成SELECT * FROM praise WHERE pId=c AND pType=s AND pStatue=t;
先试试
插入打印语句,看看逻辑有没问题,或者直接去掉select 语句