从数据库中选择一个最小值WHERE boolean=false的SQL UPDATE布尔值



我想从以前的选择中更新数据库。我的意思是,当布尔值为false时,我需要选择寄存器的最小值,然后将该记录的布尔值更改为true。他们都来自同一张桌子。

numberColumn    booleanColumn
1                1                   
2                1
3                0
4                0

结果应该是这样的:

numberColumn    booleanColumn
1                1                   
2                1
3                1
4                0

我使用的语句是这样的,语法上可能有错误。

"UPDATE db(booleanColumn) SELECT MIN(numberColumn) FROM db WHERE boolean='0' SET boolean='1'"

我觉得我需要嵌套一些东西,比如:

"UPDATE db(booleanColumn) 
SET boolean='1'
WHERE (SELECT MIN(numberColumn) WHERE boolean=0)"

但如果不起作用。我不知道你是在回答这个问题,还是我需要更好地表达自己。谢谢你,

在MySQL中,您可以执行:

update db.table
set boolean = 1
where boolean = 0
order by numberColumn
limit 1;

在SQL中,可以这样做

;with cte as  
(   
select top(1) * from db
where boolean = 0
order by numberColumn
)          
update cte set  boolean = 1

相关内容

最新更新