генератор простых чисел в mysql с использованием цикла повтора - PullRequest
0 голосов
/ 10 июля 2020

Задача - напечатать простое число в специальном формате. Я написал сценарий MySQL, но он выдает ошибку.

noGeneratorLoop:REPEAT

        SET isFactor=1;
        SET noOfFactors=0;
                factorsCheckLoop:REPEAT
                    IF i%isFactor=0 THEN
                        SET noOfFactors = noOfFactors+1;
                    END IF;
    
                SET isFactor=isFactor+1;
                UNTIL isFactor<=i
                END REPEAT factorsCheckLoop;
    
        IF noOfFactors=2 THEN
        SET Message=CONCAT(MESSAGE," | ",isFactor);
        END IF;
    
        SET i = i+1;
        UNTIL i<100    
    END REPEAT noGeneratorLoop;

Это вложенный l oop. И все необходимые объявления выполнены (i = 1). Я думаю, что основная проблема в строка UNTIL isFactor<=i, когда я пишу некоторую целочисленную константу вместо i, она работает нормально. Имя ошибки: потеряна связь с MySQL во время запроса. Так в чем же причина и как устранить ошибку.

1 Ответ

0 голосов
/ 10 июля 2020

fiddle

  • Добавлены определения / инициализации переменных.
  • Добавлены операторы отладки.
  • Добавлена ​​проверка Anti-infinite l oop .

Если начальное значение для i переменной меньше 2 (0 и 1 в скрипте), то наблюдается бесконечное l oop.

Исследовать ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...