sql从数据库更新布尔值,选择布尔值为false的最小值

zvms9eto  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(573)

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

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)"

但如果不工作也一样。我不知道你是在问这个问题,还是我需要更好地表达自己。从现在开始谢谢你,

rhfm7lfc

rhfm7lfc1#

在sql中,您可以这样做

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

daupos2t2#

在mysql中,您可以执行以下操作:

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

相关问题