SQL 从数据库更新布尔值,选择数字的最小值 WHERE boolean=false
SQL UPDATE boolean from a db selecting a minium value of number WHERE boolean=false
我想从以前的 selection 更新我的数据库。我的意思是我需要在 boolean=false 时 select 寄存器的最小值,然后将该记录的布尔值更改为 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)"
但如果不工作也。
我不知道你是不是在问这个问题,还是我需要更好地表达自己。从现在开始谢谢你,
在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
我想从以前的 selection 更新我的数据库。我的意思是我需要在 boolean=false 时 select 寄存器的最小值,然后将该记录的布尔值更改为 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)"
但如果不工作也。 我不知道你是不是在问这个问题,还是我需要更好地表达自己。从现在开始谢谢你,
在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