gpt4 book ai didi

php - MySQL UPDATE 表 WHERE 行数大于 n

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

在 MySQL 表中,我尝试按如下方式更新它:

UPDATE MyTable SET active=2 WHERE ((active=1) AND (If the number of rows > 20 then active=2) );

我的意思是,WHERE-Condition 应该是 (active=1),第二个条件是表中的行数应该限制为 20。以下是我的错误方法。也许这有助于理解我想说的或想做的事情:

UPDATE MyTable SET active=2 WHERE ( (active=1) AND
((SELECT id, @rownum:=@rownum + 1 as Row_Number from MyTable) JOIN (SELECT @rownum := 0) r)
, Row_Number>20)

为了更好地理解它,我尝试像代码片段一样编写 SQL 语句,如下所示:

if(Row_Number<20) {
// It's not interesting.
}else {
for(var i=20; i<NumberOfRecords; i++) {
active=2;
}

}

知道如何编写正确的 MySQL 语句来实现我的意图。提前致谢。

最佳答案

我认为这就是您所追求的:

UPDATE MyTable
SET active=2
WHERE active=1
AND (SELECT COUNT(*) FROM (SELECT * FROM MyTable WHERE active=2) as tbl) >20

解释:

此查询将为满足以下条件的那些记录更新 active = 2:

  1. active=1

  2. active=2的表中多了20条记录

结果:

SQL Fiddle没有更新(没有20条记录active=2)

SQL Fiddle有更新(有 20 条记录 active=2)

关于php - MySQL UPDATE 表 WHERE 行数大于 n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31514141/

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