如图1和4完全一样的。
如果认为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
)
limit 1不行吗?
Update top 1
首先一样的的记录为什么会存在两条?
其次如果是 oracle 可以使用 rowid 伪列
可以用limit啊:update EMP_WMJ set ENAME = 'aaa' limit 1
另外就是这种完全相同的记录是很不好的,起码得有ID主键不同,你这个表估计连ID主键都没设
最后筛选条件拼接上 and rownum =1