gpt4 book ai didi

php - 根据具有重复值的列以 +1 增量更新列

转载 作者:行者123 更新时间:2023-11-29 01:30:17 28 4
gpt4 key购买 nike

我有一个包含 3 列的 mysql 表(itemidaltidcounter)

我很难遍历每一行以根据重复的 itemid 的数量更新 counter 列。

我正在尝试完成的示例:

itemid | altid | counter
1 30 1
1 31 2
1 37 3
5 53 1
5 54 2
6 112 1
6 113 2
6 114 3
6 115 4

注意 itemid 重复的地方,counter 递增 +1。

该列表大约有 2500 行。我的 counter 列是空的。我没有运气在 while 循环内增加以在 php 中更新,因为我不知道如何检测该重复值(或检查该先前值)。

这就是我现在所拥有的(不起作用):

$query = mysql_query("SELECT * FROM table") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)){
$itemid = $row['itemid'];
$i=1;
if($row['itemid']!=$itemid){
$i=1;
}
$id = $row['id'];
$query = mysql_query("UPDATE table SET counter='$i' WHERE id=$id") or die(mysql_error());
$i++;
}

我进行了搜索,但没有找到很多可以帮助实现此目的的东西。任何帮助,或朝着正确的方向插入,将不胜感激!

最佳答案

试试这个 MySQL:

SET @pos=0, @last=0;
UPDATE `table` SET `counter`=(
@pos:=if(
@last=`itemid`,
@pos+1,
(@last:=`itemid`) and 1
)
) ORDER BY `itemid` ASC;

关于php - 根据具有重复值的列以 +1 增量更新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15752523/

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