Не могу объявить переменную SQL - PullRequest
4 голосов
/ 10 ноября 2011

Я пытался объявить целочисленную переменную, но она просто не работает.Вот мой запрос:

DECLARE @count INT
SET     @count = 5633

SELECT count(matchid) 
FROM   `matches`
WHERE   id = @count

Я получаю эту ошибку:

Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE @count INT
SET     @count = 5633

Пожалуйста, помогите:)

Ответы [ 4 ]

2 голосов
/ 10 ноября 2011

Согласно руководству MySQL , DECLARE разрешено только внутри блока BEGIN ... END и должно быть в начале.Вы также забываете точку с запятой в конце каждой строки.Это должно работать для вас:

SET @count = 5633;

SELECT count(*) 
FROM matches
WHERE id = @count;

COUNT(*) быстрее в некоторых случаях.

1 голос
/ 10 ноября 2011
DECLARE @count INT;
SET     @count = 5633;

SELECT count(matchid) 
FROM   matches
WHERE   id = @count;

Кроме того, вам, очевидно, нужен блок начала / конца.

0 голосов
/ 10 ноября 2011

Как насчет того, чтобы сделать все это in-line

SELECT
      count(matchid) 
   FROM   
      `matches`,
      ( select @count := 5633 ) SQLVars
   WHERE   
      matches.id = @count

, но в противном случае это было бы более прямым, просто сделайте это прямо в предложении WHERE.

0 голосов
/ 10 ноября 2011
DECLARE @count INT
SET     @count = 5633

SELECT count(matchid) 
FROM    matches  //<===  should be table name
WHERE   id = @count
...