【发布时间】:2013-03-11 07:46:52
【问题描述】:
我有以下 mysql 查询:
SELECT u.name AS nume, p.premiu AS premiu
FROM fbusers AS u, premii AS p
ORDER BY RAND( )
LIMIT 1
我想要随机选择一个用户来提供奖品,然后我想从奖品表中删除该奖品。
可以在同一个查询中执行此操作吗?我应该如何进行?
编辑:逻辑是显示获胜者和奖品,如果可能,将结果插入其他表格,然后从表格中删除奖品,因为其他人不可能赢得相同的奖品。
【问题讨论】:
-
如果这两个查询在逻辑上总是在一起,你可以把它们包装在一个存储过程中。
-
奖品也是随机的,还是您按规定的顺序分配(给随机用户)?
-
奖品也是随机的,我将所有奖品放在一张桌子上,这将是一个随机选择(用户和奖品)。
-
我还会考虑进行“软”删除,以便您保留奖品信息以进行统计报告。软删除只是一个带有一个字符的状态列;通常是 A、I 或 D(活动、非活动或已删除)。然后,您可以在表格中查询过去或现在的任何奖品,无论谁中奖。