我只需要更新数据库中的一条记录,并将其分配给用户。这是我在做什么:
UPDATE TOP (1) books SET assigneduser = 1
WHERE bookstatus = 7
AND ((assigneduser is null) or (assigneduser = 1));
我也有一个名为bookname的字段,我希望按该字段排序,但是update似乎不支持它。
还要注意,我一次将有50个用户使用该软件,因此我需要确保仅分配给一个用户一本书。否则,我将先运行一次select,然后在最上面的记录上进行更新。
谢谢。
最佳答案
您必须首先选择所需的记录,然后对其进行更新:
update books
set assigneduser = 1
where BookPrimaryKeyField = (
SELETE TOP 1 BookPrimaryKeyField
from books
WHERE bookstatus = 7
AND ((assigneduser is null) or (assigneduser = 1));
)
关于sql - SQL:是否可以在更新语句上使用Order By?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6310694/