来自数据库的SQL UPDATE布尔值,选择一个最小值WHERE布尔值= false

时间:2018-10-30 02:07:27

标签: mysql sql sql-update mysql-select-db

我想从先前的选择中更新数据库。我的意思是我需要在boolean = false时选择寄存器的最小值,然后将该记录的boolean值更改为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)"

,但如果也不起作用。 我不知道您是否正在提出问题,或者我需要更好地表达自己。从现在开始谢谢你,

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

在SQL中,您可以这样做

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