2017-06-19 7 views
-1

私はMySqlを初めて使用していますが、かなりの間MSSQLを使用しています。ストアドプロシージャの1つでページネーションを実装する必要があります。私はLIMIT句(MSSQLのOFFSETに似ています)を認識していますが、句で変数を使用できず、クエリ構文が取得できません。私はMySql Version '5.7.18-log'を使用していますが、LIMITの変数は5.5.6+から利用可能です。私は多くのフォーラムとブログポストを試みました。私はまた、5.7のドキュメンテーションを試してみました。 私は、動的に準備されたSQL文を使用することでこれに対する回避策があることを認識しています。 変数にLIMITを直接使用する方法はありますか? ご協力いただきありがとうございます!ここでMySqlでの変数の使用バージョン5.7.18-logのLIMIT句

は、コード、@Nigelレン

CREATE PROCEDURE `USP_GetResults`(IN PageNumber INT,IN PageCount INT) 
BEGIN 
SET @pageOffset := (PageNumber - 1) * PageCount; 
SELECT * FROM TableName 
ORDER BY ColumnName LIMIT @pageOffset,PageCount; 
END 
+0

あなたは、SQL文を投稿することができ、それは非常に簡単になるだろう –

答えて

0

である私が使っていた変数の型が間違っていた、その答えを自分自身を発見しました。 以下のコードスニペットに示すように解決しました。 質問を見て、ダウンボウリングしても答えることはありません。 ;) (あなたは親切にそれに答えることで他の人を助けるのは非常に簡単に感じる場合、私は個人的に感じる)

CREATE PROCEDURE `USP_GetResults`(IN PageNumber INT,IN PageCount INT) 
BEGIN 
DECLARE $PageOffset int; 
SET $PageOffset = (PageNumber - 1) * PageCount; 

SELECT * FROM TableName 
ORDER BY ColumnName LIMIT $PageOffset,PageCount; 
END 
関連する問題