更新一个sql,场景是年会抽奖。
实现逻辑就是,通过随机数来排序,抽取对应的奖项,为了避免重复,将每个奖项的中奖者,放入另一张表,然后打印出本次的中奖用户,最后使用一个存储过程来实现。sql语句以及实现如下。
需要注意就是,delimiter这个单词的拼写。
sql语句
delimiter$$
create procedure luck_draw(
in p_prize varchar(10),
in p_num int
)
begin
insert into luck_emp(emp_id,emp_name,prize)
select emp_id,emp_name,p_prize
from employee e
where emp_id not in (select emp_id from luck_emp)
order by rand()
limit p_num;
select * from luck_emp;
end$$
delimiter;
create table luck_emp(
emp_id int,
emp_name varchar(50),
prize varchar(10)
);
call luck_draw('三等奖',3);