+ -
当前位置:首页 → 问答吧 → 帮忙看看这个sql怎么写

帮忙看看这个sql怎么写

时间:2011-07-12

来源:互联网



想更新表role 把grade属性+1,更新那些name在top表中按grade排列前paramLimit名的人 在top和role中都有名为name的列
SQL code

DROP PROCEDURE IF EXISTS UpdateGrade;
CREATE PROCEDURE UpdateGrade(
IN paramGrade INT,
IN paramLimit INT
)
BEGIN

  SET @result = 0;        
  UPDATE role SET
      grade=grade+1
  WHERE name is in(SELECT name from top where grade = paramGrade orderby grade limit paramLimit);

  SET @result = paramGrade;
END

作者: aaabianhuakai   发布时间: 2011-07-12

SQL code
begin

set @sql = concat('create table temp_top select name from top order by grade limit ',paramlimit )
prepare stmt from @sql;
execute stmt;

update role A,temp_top B
set A.grade = A.grade + 1
where A.name = B.name

drop table temp_top

end

作者: rucypli   发布时间: 2011-07-12