基于另一个表中mysql表的最高值存储前3行

时间:2014-09-27 05:48:20

标签: mysql

我希望根据表RACES中的列RACERS选择当天排名前3位的玩家并将其存储在其他位置,因为cron作业将在每天午夜删除整个表格。

1 个答案:

答案 0 :(得分:1)

只需执行insert into ... select,就像这样:

insert into table daily_winners(win_date, first_place, second_place, third_place)
select
    now(), 
    (select user from racers order by races limit 1),
    (select user from racers order by races limit 1 offset 1),
    (select user from racers order by races limit 1 offset 2)
)

请参阅Sorting RowsINSERT...SELECT语法和'限制条款' SELECT内的文档。

请注意,这可能在MySQL中具有特定的性能特征,这可能使其不受欢迎;您可能希望使用上述文档对此进行一些研究。