0

我有以下mysql查询:

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

我想要的是选择一个随机用户来提供奖品,然后我想从奖品表中删除该奖品。
可以在同一个查询中完成吗?我应该如何进行?

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

4

2 回答 2

0

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

于 2013-03-10T23:46:52.803 回答
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
于 2013-03-10T23:31:33.310 回答