2013-02-12 157 views
1

我正在处理需要后端服务的项目。我正在使用MySQL和PHP脚本来实现与服务器端的通信。我想在后台添加一项新功能,那就是每天从table_members中自动生成一个包含3个“幸运”成员的表格的功能。换句话说,我希望MySQL从表中选择3个随机行并将这些行添加到另一个表(如果可能的话)。我明白,如果手动调用该表上的RAND()函数,我可以实现这一目标,但......会很痛苦!从表中自动选择随机行

有什么办法可以达到上述目的?

UPDATE:

这是我对这个解决方案后的意见/建议从其他用户

CREATE EVENT `draw` ON SCHEDULE EVERY 1 DAY STARTS '2013-02-13 10:00:00' ON COMPLETION NOT PRESERVE ENABLE DO 
INSERT INTO tbl_lucky(`field_1`) 
SELECT u_name 
FROM tbl_members 
ORDER BY RAND() 
LIMIT 3 

我希望这是有益的,给别人。

+0

我的建议是创建三个随机密钥,然后使用SQL IN子句从这三个密钥中获取数据。 – 2013-02-12 22:49:02

+2

'... rand()limit 3'有什么问题? – 2013-02-12 22:49:06

+0

使用MySQL事件调度程序和随机选择3 ...每天的过程,并插入... – xQbert 2013-02-12 22:49:23

回答

1

您可以使用INSERT ... SELECT,并选择3行ORDER BY RAND()LIMIT 3

有关INSERT的详细信息... SELECT语句 - see

也有可能这每天的工作与MySQL Events自动化(自5.1.6起可用)

+0

工作正常!谢谢你的帮助。只是一个小问题。我试图在INSERT INTO之前有TRUNCATE TABLE ...,但是出于某种原因我在第1行出现语法错误。我尝试通过phpMyAdmin手动尝试,并且正在工作(首先要求确认)。任何想法如何解决这个事件? – OutOfBoundsException 2013-02-13 00:10:07