0

我通过 HeidiSQL 使用 MySQL 5.6.10。我按照简单的循环运行 hte 并出现语法错误:

    DELIMITER $$
    DROP PROCEDURE IF EXISTS testif $$
    CREATE PROCEDURE testif()
    SET @number_title = 0;
    SET @max = (select count(distinct ctitle) FROM wb_hp_customers.hp_customers_final);
    BEGIN
    label1: LOOP
    IF (@number_title<@max) ITERATE label1;
    END IF;
    @number_title = @number_title + 1;
LEAVE label1;
END LOOP label1;
    END $$  
    DELIMITER ;

    CALL testif();

我得到的错误是:

SQL 错误 (1064) :您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 label1 附近使用的正确语法:LOOP。

有人可以帮忙吗?

谢谢

4

2 回答 2

1

几个错误:)

CREATE PROCEDURE testif()
BEGIN
    SET @number_title = 0;
    SET @max1 = (select count(distinct ctitle) FROM wb_hp_customers.hp_customers_final);
    label1: LOOP
        IF (@number_title<@max1) THEN 
            ITERATE label1;
        END IF;
        SET @number_title := @number_title + 1;
    END LOOP;
END $$

这会起作用,但要小心无限循环

于 2013-07-03T22:31:33.200 回答
0

看来您没有 END LOOP label1; 在你的代码中。

这是对 LOOP 协议的更好解释:http: //dev.mysql.com/doc/refman/5.6/en/loop.html

于 2013-07-03T22:22:34.697 回答