如何通过MySQL
存储过程分配Row_number
以及选择,我可以使用MS-SQL
来完成,如下所述:
CREATE PROCEDURE [dbo].[GetCustomersPageWise]
@PageIndex INT = 1
,@PageSize INT = 10
,@PageCount INT OUTPUT
AS
BEGIN
SET NOCOUNT ON;
SELECT ROW_NUMBER() OVER
(
ORDER BY [CustomerID] ASC
)AS RowNumber
INTO #Results
FROM [Customers]
END
我的问题是..
- 如何初始化
MySQL
中的参数(例如:@PageIndex INT = 1
) 在
MySQL
中如何实现SELECT ROW_NUMBER() OVER ( 按 [客户 ID] ASC 排序 )AS 行号
我尝试过的
当我喜欢这样的时候
创建过程 'dbo'.'GetCustomersPageWise'(p_PageIndex INT = 1,p_PageSize INT = 10,p_PageCount INT OUTPUT)
导致错误=1 附近的语法不正确
我也尝试过
选择 ROW_NUMBER() 超过; ( 按“客户 ID”ASC 排序 )AS 行号
导致错误为 脚本行:4 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 'ORDER BY
product_gid
ASC 附近使用的正确语法 )AS 行号product_gid
, ' 在第 8 行
最佳答案
CREATE PROCEDURE [dbo].[GetCustomersPageWise]
@PageIndex INT = 1
,@PageSize INT = 10
,@PageCount INT OUTPUT
AS
BEGIN
SET @ROW_NUMBER= 0;
Insert INTO Results SELECT @ROW_NUMBER:= @ROW_NUMBER+ 1
FROM Customers
END
这样就可以达到你预期的效果了。
关于mysql - 通过存储过程分配行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26229864/