2017-06-19 120 views
-1

我是MySql的新手,但一直在使用MSSQL很長一段時間。我需要在其中一個存儲過程中實施分頁。我知道LIMIT子句(類似於MSSQL中的OFFSET),但是我無法在子句中使用變量並且得到查詢語法錯誤。我正在使用MySql Version'5.7.18-log',並且我知道LIMIT中的變量可以從5.5.6+中獲得。我嘗試了很多論壇和博客帖子;我也嘗試了5.7文檔尋求幫助。 我知道有一個解決方法,通過使用動態準備的SQL語句。 是否有任何直接的方式使用LIMIT與變量? 在此先感謝您的幫助!版本5.7.18中MySql LIMIT子句中變量的使用-log

下面是代碼,@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

,我發現自己的答案,我是用錯了變量的類型。 解決它,如下面的代碼片段所示。 謝謝你看問題,downvoting甚至不回答。 ;) (我個人覺得,如果你覺得它很容易好心幫助別人回答吧)

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