gpt4 book ai didi

mysql - 如果 count(*) > n 则更新行

转载 作者:可可西里 更新时间:2023-11-01 07:22:44 24 4
gpt4 key购买 nike

我的数据库有这样的结构:

ID | text | time | valid

这是我当前的代码。我正在尝试找到一种方法来将此作为一个查询。

rows = select * from table where ID=x order by time desc;
n=0;
foreach rows{
if(n > 3){
update table set valid = -1 where rows[n];
}
n++
}

我正在检查给定 ID 存在多少行。然后我需要为 n >3;

的所有行设置 valid=-1

有没有一种方法可以通过一个查询来做到这一点?

最佳答案

您可以在 WHERE 子句中使用子查询,如下所示:

UPDATE table
SET valid=-1
WHERE (
SELECT COUNT(*)
FROM table tt
WHERE tt.time > table.time
AND tt.ID = table.ID
) > 3

子查询统计具有相同ID且时间较晚的行。对于最近的三行,此计数将为三或更少;其余的将具有更大的计数,因此它们的 valid 字段将被更新。

关于mysql - 如果 count(*) > n 则更新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19297079/

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