我想从先前的选择中更新数据库。我的意思是我需要在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)"
,但如果也不起作用。 我不知道您是否正在提出问题,或者我需要更好地表达自己。从现在开始谢谢你,
答案 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