MySQL-根据平均值按百分比增加值
我有一张名为讲师的桌子MySQL-根据平均值按百分比增加值,mysql,sql,Mysql,Sql,我有一张名为讲师的桌子 UPDATE instructor SET salary=salary*1.05 where salary<(select avg(salary) from instructor) 不能在同一查询中更新表并将其用作子选择。这样做根本没有意义 为了实现您的目标,您需要运行两个不同的查询。第一个将是您的子选择。然后,第二个查询使用第一个查询的结果作为参数更新表 问题1: select avg(salary) from instructor 问题2: UPDATE i
UPDATE instructor
SET salary=salary*1.05
where salary<(select avg(salary) from instructor)
不能在同一查询中更新表并将其用作子选择。这样做根本没有意义 为了实现您的目标,您需要运行两个不同的查询。第一个将是您的子选择。然后,第二个查询使用第一个查询的结果作为参数更新表 问题1:
select avg(salary) from instructor
问题2:
UPDATE instructor
SET salary=salary*1.05
where salary < @avg_salary
可能是您无法基于子选择更新表。为了避免此问题,您应该基于子选择创建临时表。请参阅此
UPDATE instructor
SET salary=salary*1.05
where salary< (
select t.my_avg
from (
select avg(salary) my_avg from instructor
) t
)
我认为这是解决方案,但有一个小错误,你需要一个t别名后,从。。。这不是一个问题answer@Strawberry字体这是一个答案。它包含有关查询为何不起作用的信息,并列出如何解决问题。我的问题已解决。谢谢但它也显示了平均工资值。有没有停止显示的选项?