gpt4 book ai didi

mysql - 设置顺序/位置 - 通过两个变量重置

转载 作者:行者123 更新时间:2023-11-29 13:01:56 26 4
gpt4 key购买 nike

我想问是否可以仅通过MySQL而不是通过php代码来完成

我有一张 table ,上面有

ID, CATID, Order

我知道我可以设置顺序

SET @pos := 0; UPDATE products SET order = @pos :=@pos +1 ORDER BY order;

但是我如何重置它(每个 catid 从 0 开始)。

在 php 中,我可以选择每个 catid 并每次运行不同的 sql。

有没有仅MySQL的解决方案?

(也提出一个标题。我不知道怎么写:P)

最佳答案

引入一个新变量@cat。与catid进行比较并在catid更改时重置@pos

SET @pos := 0;
SET @cat:= 0;
UPDATE products p join
(
select id,
@pos:=if(@cat<>catid,0,@pos+1) as new_order,
@cat:=catid
from products
ORDER BY order
) p2 on p.id=p2.id
SET order = p2.new_order;

关于mysql - 设置顺序/位置 - 通过两个变量重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23218774/

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