如何只更新表中的一行?

问题描述 投票:0回答:6

如何只更新表中的一条记录?

表:

name       name1       name2
----------------------------
xx         xy          xz
xx         xx          xx
xx         xx          xx
xx         xx          xx
xy         xx          zz

更新查询:

UPDATE table1 
SET name2 = '01' 
WHERE name1='xx'

我每次只需要更新一行。

sql sql-server sql-update
6个回答
81
投票

您可以使用 ROWCOUNT

SET ROWCOUNT 1

UPDATE table1 
SET name2 = '01' 
WHERE name1='xx'

SET ROWCOUNT 0

或者你可以使用更新顶部

UPDATE TOP (1) table1 
SET name2 = '01' 
WHERE name1='xx'

2
投票
UPDATE table1 
SET name2 = '01' 
WHERE name1='xx'
LIMIT 1;

0
投票

如果您使用的是 Oracle,则使用以下命令

update TABLE_NAME set COLUMN_NAME=VALUE where name1='xx' and rownum=1


-2
投票

请使用对主键进行操作的子查询以获得更好的性能

-- INVALID, BUT EXPECTED: update "user" set email = '[email protected]' where email = '[email protected]' limit 1

update "user' set email = '[email protected]' where id = (
    select id from "user" where email = '[email protected]' limit 1
)

-4
投票

您只需在查询末尾添加 LIMIT 1 即可。


-6
投票

如果您想每次更新一行,请尝试在表中添加一个标识列来标识每一行。

© www.soinside.com 2019 - 2024. All rights reserved.