我正在寻找一个执行以下操作的SQL代码:
SELECT * FROM fzs_contest WHERE answer = 'D' order by rand() limit 1;
仅限SQL可以吗?
答案 0 :(得分:0)
第一次获得有效的获胜者怎么样?
insert into fzs_contest_winners ( . . .)
select . . .
from fzs_contest c
where answer = 'D' and
not exists (select 1 from fzs_context_winners cw where cw.?? = c.??)
order by rand()
limit 1;
??
用于标识两个表中某人相同的列。
注意:如果两个线程同时运行,则此类查询可以选择相同的获胜者两次。但是,我似乎不太可能一次选择多个获胜者。此外,您应该保证一个人只使用唯一索引在表格中出现一次。