gpt4 book ai didi

mysql - 根据行号更新表格

转载 作者:行者123 更新时间:2023-11-29 00:47:05 24 4
gpt4 key购买 nike

我有一个带有整数字段的表,用于控制记录的自定义显示顺序。

例子:

SET @rownumber = 0;

SELECT
@rownumber:=@rownumber+1 AS rownumber,
slides.displayorder
WHERE
active = 1
ORDER BY displayorder ASC

这个查询给我的结果有点像这样:

 rownumber | displayorder
-----------+-------------
1 2
2 7
3 15
4 50
5 80

在记录被删除/未获批准之前,这一切正常(因此显示顺序出现空白)。

我想做的是运行更新查询,在删除记录后将 displayorder 列设置为 rownumber 变量的值。

给出这样的结果:

 rownumber | displayorder
-----------+-------------
1 1
2 2
3 3
4 4
5 5

有没有简单的方法来做到这一点?

最佳答案

这似乎可以完成工作。

SET @rownumber = 0;
INSERT INTO slides (id, displayorder)
SELECT a.id, a.rownumber
FROM (SELECT id, (@rownumber:=@rownumber+1) AS rownumber FROM slides WHERE active = 1 ORDER BY displayorder ASC) AS a ON DUPLICATE KEY UPDATE displayorder = a.rownumber

关于mysql - 根据行号更新表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10107744/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com