gpt4 book ai didi

php - MySQL如何给一行定义的数字

转载 作者:行者123 更新时间:2023-11-29 05:26:53 25 4
gpt4 key购买 nike

好吧,我发现很难给这个问题一个合适的标题,因为我不太确定你会怎么称呼这个函数。

所以,我有一个名为 categories 的表,它包含 ID、ParentID、Name、OrderNo 等等。

我想要做的是给每个类别一个 OrderNo,通过订单号我的意思是如果我的类别树如下:

Computers
Computers > Laptops
Computers > Desktops
Computers > Components > Hard Drives
Computers > Components > Monitors
TVs
TVs > LED
TVs > LCD

所以我只想给每个类别一个从 1 开始的 OrderNo 值。所以

Computers 1
Computers > Laptops 1
Computers > Desktops 2
Computers > Components 3
Computers > Components > Hard Drives 1
Computers > Components > Monitors 2
TVs 2
TVs > LED 1
TVs > LCD 2

希望这更有意义,因为它确实试图解释我正在尝试做的事情。不幸的是,我不知道这样的函数会被称为什么,否则我会用谷歌搜索它。

我最初的 select 语句看起来像这样:

select ID,ParentID,Name,OrderNo
from categories
Order by ParentID,ID

但不知道如何进一步推进它。抱歉垃圾解释提前致谢约翰

最佳答案

SET @parent=0;
SET @sort=1;
UPDATE categories
SET OrderNo = (@sort := IF(
ParentID <=> @parentid,
@sort+1,
1 + IF(@parentid := ParentID,0,0)
))
ORDER BY parentid;

太复杂了,你可能想在应用程序代码中代替......

关于php - MySQL如何给一行定义的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19144803/

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