Подтвердить что ты не робот

Локальные переменные MySQL

Я пытаюсь определить и инициализировать переменную MySQL для запроса.

У меня есть следующее:

declare @countTotal int;
SET @countTotal = select COUNT(*)
 from nGrams;

Я использую MySQL в Netbeans, и он говорит мне, что у меня есть ошибка. Что/где моя ошибка?

Как я могу это исправить?

4b9b3361

Ответ 1

MySQL имеет два разных типа переменных:

Поэтому, если вы определяете сохраненную программу и на самом деле хотите "локальную переменную" в соответствии с формулировкой в ​​своем вопросе, вам нужно отказаться от символа @ и убедиться, что ваш оператор DECLARE находится на запуск вашего программного блока. В противном случае, чтобы использовать "пользовательскую переменную", отпустите инструкцию DECLARE.

Кроме того, вам нужно будет окружить ваш запрос в круглых скобках, чтобы выполнить его как подзапрос:

SET @countTotal = (SELECT COUNT(*) FROM nGrams);

Или иначе вы можете использовать SELECT ... INTO:

SELECT COUNT(*) INTO @countTotal FROM nGrams;

Ответ 2

Попробуйте следующее: -

 select @countTotal := COUNT(*) from nGrams;

Ответ 3

Пример функции:

DROP FUNCTION IF EXISTS test;

DELIMITER $$
CREATE FUNCTION test(in_number INT) RETURNS INT
    BEGIN
        DECLARE countTotal INT;
        SET countTotal = SELECT COUNT(*) FROM nGrams;
    RETURN countTotal + in_number;
END $$
DELIMITER ;

Ответ 4

Согласно Синтаксис DECLARE, declare должен находиться внутри блока end... end.