如何只更新表中的一条记录?
表:
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'
我每次只需要更新一行。
您可以使用 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'
UPDATE table1
SET name2 = '01'
WHERE name1='xx'
LIMIT 1;
如果您使用的是 Oracle,则使用以下命令
update TABLE_NAME set COLUMN_NAME=VALUE where name1='xx' and rownum=1
请使用对主键进行操作的子查询以获得更好的性能
-- 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
)
您只需在查询末尾添加 LIMIT 1 即可。
如果您想每次更新一行,请尝试在表中添加一个标识列来标识每一行。