7 个回答

可以用limit啊:update EMP_WMJ set ENAME = 'aaa' limit 1

另外就是这种完全相同的记录是很不好的,起码得有ID主键不同,你这个表估计连ID主键都没设

新手上路,请多包涵

limit 1不行吗?

Update top 1

首先一样的的记录为什么会存在两条?
其次如果是 oracle 可以使用 rowid 伪列

如果认为update语句的where条件中,应该只有一条记录,可以在where条件中增加 rownum = 1

update EMP_WMJ set ename = 'Frank' where empno = 7566 and rownum = 1

如果是deptno=20这样的条件,里面有多个empno重复的记录,需要这样写

update EMP_WMJ set ename = 'Frank' where rowid in (
  select min(rowid) from EMP_WMJ  where deptno=20 group by empno
)
新手上路,请多包涵

最后筛选条件拼接上 and rownum =1

没有主键自增id吗?通过where id来up啊?要是没有 可以考虑limit 1

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进