以下是MSSQL更新表进行记录排序的
如何用MYSQL实现相同的脚本呢?
谢谢DECLARE @t TABLE(rk int);
WITH cte
AS (SELECT rank()
OVER(ORDER BY SortNumber ASC) rk,
*
FROM Sys_SecurityMenu
WHERE 1 = 1
AND (SecurityMenuGuid is null)
AND (Guid <> '706fd28aaed64486acee1e210f649728' /* ?p0 */))
UPDATE t
SET SortNumber = (r.rk)
output inserted.SortNumber into @t
FROM Sys_SecurityMenu t
INNER JOIN cte r
ON t.Guid = r.Guid
WHERE 1 = 1
AND (t.SecurityMenuGuid is null)
AND (t.Guid <> '706fd28aaed64486acee1e210f649728' /* ?p1 */)
SELECT TOP 1 rk
FROM @t
ORDER BY rk DESC
如何用MYSQL实现相同的脚本呢?
谢谢DECLARE @t TABLE(rk int);
WITH cte
AS (SELECT rank()
OVER(ORDER BY SortNumber ASC) rk,
*
FROM Sys_SecurityMenu
WHERE 1 = 1
AND (SecurityMenuGuid is null)
AND (Guid <> '706fd28aaed64486acee1e210f649728' /* ?p0 */))
UPDATE t
SET SortNumber = (r.rk)
output inserted.SortNumber into @t
FROM Sys_SecurityMenu t
INNER JOIN cte r
ON t.Guid = r.Guid
WHERE 1 = 1
AND (t.SecurityMenuGuid is null)
AND (t.Guid <> '706fd28aaed64486acee1e210f649728' /* ?p1 */)
SELECT TOP 1 rk
FROM @t
ORDER BY rk DESC
OUTPUT MYSQL有相应的特性吗?
印象中好像没有