我有以下mysql查询:
SELECT u.name AS nume, p.premiu AS premiu
FROM fbusers AS u, premii AS p
ORDER BY RAND( )
LIMIT 1
我想要的是选择随机用户进行奖品,之后我想从奖品表中删除该奖品。
可以在同一查询中进行此操作吗?我该怎么办?
编辑:逻辑是显示获胜者和奖品,如果可能的话,将结果插入其他表格中,然后从表格中删除奖品,以便其他人无法获得相同的奖品。
答案 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。如果您希望以原子方式处理所有这三个操作,则使用事务(即,它们都将被执行,或者如果任何一个操作失败,其他操作将被回滚)