2011-11-10 12 views
3

整数変数を宣言しようとしていますが、それは機能しません。変数が宣言されています。SQL

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 

が:)

+0

あなたが最も役に立つと思った答えを**受け入れる**ことを覚えておいてください。 Stackoverflowへようこそ! –

答えて

-1
DECLARE @count INT 
SET  @count = 5633 

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

まだ動作しません。問題は、imがcountを宣言しているときです。 –

+0

@JamesStevensonあなたは間違っています。答えを見てください。私はちょうどそれをテストし、あなたは ''試合 ''と別のエラーがあった。私もそれを修正した。 –

+0

このビットはうまくいきません。SELECTクエリ(matchid) FROM 'matches' WHERE id = 5633問題は、テーブルではなく変数の宣言である –

1
DECLARE @count INT; 
SET  @count = 5633; 

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

はまた、明らかにneedは/エンドブロックを始める助けてくださいここに私のクエリがあります。

+1

それでも何らかの理由で機能しません。 'DECLARE @count INT'の近くにSQL構文エラーがあります。 –

+0

@Daveが上に示しているように、文をセミコロン ';で終了する必要があり、宣言する必要はないと思います。 –

0

インラインそれをすべてやって

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

が、より直接的にはそうでない場合は、単にWHERE句で直接それを持っているだろうか。

2

MySQL manualによると、DECLAREはBEGIN ... ENDブロック内でのみ使用でき、開始時に指定する必要があります。あなたはまた、各行の終わりにセミコロンを忘れています。これはあなたのために働くはずです:

SET @count = 5633; 

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

COUNT(*)がより速い場合があります。

+0

これは大変感謝してくれました。 –

+0

'COUNT(*)'は速いかもしれませんが、 'COUNT(matchid)'と同じではありません。 –

関連する問題