SET @idx = 1; SET @len = LENGTH(temp_accintervals) - LENGTH(REPLACE(temp_accintervals, ',', '')) + 1; WHILE @idx <= @len DO SET accinterval1 = TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(temp_accintervals, ',', @idx), ',', -1)); SELECT count(1) INTO records FROM t_ams_recordother t WHERE t.archivesym = accinterval1 AND FONDSCODE = '2110000' AND bookid = 0 and classno in ('银行余额调节表','银行对账单'); SELECT records; IF records = 0 THEN SELECT concat(accinterval1,' - 未查询到需要组卷的数据'); SET @idx = @idx + 1; CONTINUE WHILE; END IF; SET @idx = @idx + 1; END WHILE; continue一直在报错
时间: 2024-04-29 09:19:29 浏览: 9
这段代码是 SQL 代码,用于在数据库中进行查询和处理数据。其中,SET 语句用于给变量赋值,WHILE 语句用于循环操作,SELECT 语句用于查询数据,IF 语句用于条件判断,CONTINUE WHILE 语句用于跳过当前循环。根据你提供的信息,"continue一直在报错"这个问题比较模糊,需要你提供更多的错误信息或者上下文才能够帮你解决问题。
相关问题
SET @idx = 1; SET @len = LENGTH(temp_accintervals) - LENGTH(REPLACE(temp_accintervals, ',', '')) + 1; WHILE @idx <= @len DO SET accinterval1 = TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(temp_accintervals, ',', @idx), ',', -1)); SELECT accinterval1; SELECT count(1) INTO records FROM t_ams_recordother t WHERE t.archivesym = accinterval1 AND FONDSCODE = '2110000' AND bookid = 0 and classno in ('银行余额调节表','银行对账单'); SELECT records; IF records = 0 THEN SELECT concat(accinterval1,' - 未查询到需要组卷的数据'); SET @idx = @idx + 1; CONTINUE WHILE; END IF; SET @idx = @idx + 1; END WHILE; 为什么报错continue
在 MySQL 中,`CONTINUE` 是一个用于循环语句的关键字,它可以跳过当前循环的剩余部分,继续执行下一次循环。但是,在上面的存储过程代码中,`CONTINUE` 后面带有 `WHILE` 关键字,这是不正确的语法,会导致语法错误。
正确的语法应该是 `CONTINUE WHILE` 或者 `CONTINUE LOOP`,其中 `WHILE` 和 `LOOP` 都是循环关键字,用于指定要继续执行的是哪个循环。因此,正确的代码应该是:
```
SET @idx = 1;
SET @len = LENGTH(temp_accintervals) - LENGTH(REPLACE(temp_accintervals, ',', '')) + 1;
WHILE @idx <= @len DO
SET accinterval1 = TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(temp_accintervals, ',', @idx), ',', -1));
SELECT accinterval1;
SELECT count(1) INTO records FROM t_ams_recordother t WHERE t.archivesym = accinterval1 AND FONDSCODE = '2110000' AND bookid = 0 and classno in ('银行余额调节表','银行对账单');
SELECT records;
IF records = 0 THEN
SELECT concat(accinterval1,' - 未查询到需要组卷的数据');
SET @idx = @idx + 1;
CONTINUE WHILE;
END IF;
SET @idx = @idx + 1;
END WHILE;
```
在正确的代码中,`CONTINUE` 后面跟着 `WHILE`,指定要跳过的是外部的 WHILE 循环。
SET @idx = 1; SET @len = LENGTH(temp_accintervals) - LENGTH(REPLACE(temp_accintervals, ',', '')) + 1; WHILE @idx <= @len DO SET accinterval1 = TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(temp_accintervals, ',', @idx), ',', -1)); SELECT accinterval1; /** * 取卷内条目数 */ SELECT count( 1 ) INTO records FROM t_ams_recordother t WHERE t.archivesym = accinterval1 AND FONDSCODE = '2110000' AND bookid = 0 and classno in ('银行余额调节表','银行对账单'); select records ; IF records = 0 then SELECT concat(accinterval1,' - 未查询到需要组卷的数据'); SET @idx = @idx + 1; CONTINUE while; end if; SET @idx = @idx + 1; END WHILE;
根据你提供的代码,使用 `CONTINUE` 时需要在 `WHILE` 后面加上循环名称,以便让 `CONTINUE` 跳过指定的循环,所以你需要将 `CONTINUE` 语句中的 `while` 改成循环的名称,例如:
```
SET @idx = 1;
SET @len = LENGTH(temp_accintervals) - LENGTH(REPLACE(temp_accintervals, ',', '')) + 1;
WHILE @idx <= @len DO
SET accinterval1 = TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(temp_accintervals, ',', @idx), ',', -1));
SELECT accinterval1;
/** 取卷内条目数 */
SELECT count(1) INTO records FROM t_ams_recordother t WHERE t.archivesym = accinterval1 AND FONDSCODE = '2110000' AND bookid = 0 and classno in ('银行余额调节表','银行对账单');
SELECT records;
IF records = 0 THEN
SELECT concat(accinterval1,' - 未查询到需要组卷的数据');
SET @idx = @idx + 1;
CONTINUE WHILE;
END IF;
SET @idx = @idx + 1;
END WHILE;
```
在上述代码中,`CONTINUE` 语句中的 `while` 被改成了 `WHILE` 循环的名称,以便让 `CONTINUE` 跳过指定的循环。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)