用一条sql怎么在查询的同时对查询出来的数据进行修改

a237086617 2016-08-15 10:42:24
用一条sql
查询出出最低员工的工资,并把最低员工的工资进行修改操作给他加500块,最好打个注解

表名 t_user
id name salary
...全文
21966 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
a237086617 2016-08-15
  • 打赏
  • 举报
回复 1
update t_user set salary=salary+500 where salary in ( select a.salary FROM ( SELECT min(salary) salary from t_user ) a) 以解决
a237086617 2016-08-15
  • 打赏
  • 举报
回复
[SQL] update t_user set salary=salary+500 where salary in ( select min(salary) from t_user); [Err] 1093 - You can't specify target table 't_user' for update in FROM clause
js14982 2016-08-15
  • 打赏
  • 举报
回复
mysql 这条更新语句应该也可以吧? 你mysql报什么错?
ghx287524027 2016-08-15
  • 打赏
  • 举报
回复
MERGE INTO t_user ot
USING (select a.*,row_number() over(partition by id order by salary asc) as nu from t_user a) nt
ON (ot.id = nt.id)
WHEN MATCHED THEN UPDATE SET ot.salary = ot.salary +500 WHERE nt.nu=1;
查一下merge into的功能就知道了,
a237086617 2016-08-15
  • 打赏
  • 举报
回复
您知道mysql的咋写吗? mysql的没出来
a237086617 2016-08-15
  • 打赏
  • 举报
回复
回复谢谢你 出来了
js14982 2016-08-15
  • 打赏
  • 举报
回复

--查询出最低员工
select * from t_user
where salary in ( select min(salary) from t_user);

--修改工资+500
update t_user set salary=salary+500 
where salary in ( select min(salary) from t_user);

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧