使用上一个查询中的行

时间:2013-12-04 17:20:04

标签: mysql sql phpmyadmin

我正在尝试在SQL中为每个月的第一天设置一个事件,从表中获取一些行并将结果插入到另一个表中。

我在用什么,

BEGIN
    SELECT posts.user_id,posts.id,posts.category,posts.date,posts.votes FROM posts ORDER BY posts.votes ASC;
    SET POST_ID = posts.id;
    SET USER_ID = posts.user_id;
    SET CATEGORY = posts.category;
    SET VOTES = posts.votes;
    INSERT INTO `winners` (`id`, `user_id`, `post_id`, `category`, `date`) VALUES (NULL, @USER_ID, @POST_ID, @CATEGORY, DATE_FORMAT(NOW(),'%m-%d-%Y'));
END

现在我知道这不起作用(主要是因为我尝试过),但我想知道一种设置此事件的方法,而不需要任何用户交互。

谢谢

2 个答案:

答案 0 :(得分:0)

我相信Cronjobs会解决您的问题。这将允许您创建(或使用)以预设间隔运行的PHP脚本。

https://library.linode.com/linux-tools/utilities/cron

答案 1 :(得分:0)

自MySQL 5.1.6起,Event Scheduler可用于在没有用户交互的情况下运行事件。由于您标记了phpMyAdmin,我还指出phpMyAdmin支持创建和编辑事件。在数据库中,单击“事件”选项卡。