私はMySQL 5.7のストアドプロシージャと役立つポップアップエディタを初めて使用しました。私は通常のSQLエディットボックスに入れたときに動作するクエリがありますが、ストアドプロシージャを作成しようとすると失敗します。私は@rank:[email protected]+1
が問題だと思っていますが、もちろんMySQLはそれを絞り込むのにあまり役に立ちません。MySQL 5.7 phpadminとUbuntuによるストアドプロシージャの構文エラー16.04
ポイントは、フィールド(ccstr
)でいくつかの行を並べ替えるだけで、Nを入力パラメータとしてアイテム#Nを選択するだけです。
これは、値をNに置き換え、直接SQLとして働くが、私がポップアップエディタを使用して試してみた、とのミックスとマッチのすべての種類は、私がそのような考えることができます3
SET @rank:=0;
SELECT ccstr FROM
(SELECT @rank:[email protected]+1 AS rank, ccstr
FROM cards
ORDER BY ccstr ASC) as B
WHERE B.rank = N;
を言います次のとおりですが、すべてが失敗します:
DELIMITER //
CREATE PROCEDURE readnth
(IN NDX INT)
DECLARE @rank INT;
SET @rank := 0;
SELECT ccstr FROM
(select @rank:[email protected] +1 as rank, ccstr from cards
order by ccstr ASC)
as b where b.rank=ndx;
end //
delimiter ;
ここでの一般的な問題は何ですか?
エラーは何ですか? – Barmar
'@ 'で始まる変数を宣言する必要はありません。 – Barmar
これは一般的な"構文エラーがあります "という意味のエラーです。 – Wade