MySql在同一查询中随机选择和删除

时间:2013-03-10 23:20:40

标签: mysql sql database

我有以下mysql查询:

SELECT u.name AS nume, p.premiu AS premiu
FROM fbusers AS u, premii AS p
ORDER BY RAND( ) 
LIMIT 1

我想要的是选择随机用户进行奖品,之后我想从奖品表中删除该奖品。
可以在同一查询中进行此操作吗?我该怎么办?

编辑:逻辑是显示获胜者和奖品,如果可能的话,将结果插入其他表格中,然后从表格中删除奖品,以便其他人无法获得相同的奖品。

2 个答案:

答案 0 :(得分:0)

当然你可以,但我在这里看不到逻辑因为没有关于谁赢了的信息:

DELETE price FROM price 
    JOIN (SELECT u.name AS nume, p.premiu AS premiu
    FROM fbusers AS u, premii AS p
    ORDER BY RAND( ) 
    LIMIT 1) a
ON price.premiu = a.premiu

答案 1 :(得分:0)

否:您不能在一个查询中执行SELECT,INSERT和DELETE。如果您希望以原子方式处理所有这三个操作,则使用事务(即,它们都将被执行,或者如果任何一个操作失败,其他操作将被回滚)