所以我正在做一些工作,看到了这个。有人能给我解释一下这是干什么的吗?我唯一知道的是Active_Turnaments是一个充满md5哈希值的View。
select iT.TID
from (
SELECT @s := @s + 1 id, TID FROM Active_Tournaments, (SELECT @s := 0) AS s
) as iT
inner join
(
SELECT CEIL(RAND() *
(SELECT MAX(id)
FROM (select *
from (SELECT @t := @t + 1 id
FROM Active_Tournaments,
(SELECT @t := 0) AS s) as iT) as ittt)) as id
) as ceil
on iT.id = ceil.id;
提前感谢
它显示了Active_Turnaments 中的一些随机TID
SELECT @t := @t + 1 id
FROM Active_Tournaments,
(SELECT @t := 0) AS s
这为Active_Turnaments中的每一行提供一个行号
然后得到最高的行号MAX(id(,并将其乘以一个随机数。
使用CEIL,您将再次获得一个整数。
在第一个SELECT 中
(
SELECT @s := @s + 1 id, TID FROM Active_Tournaments, (SELECT @s := 0) AS s
) as iT
再次将行号添加到Active_Turnaments中,并仅选择CEIL中具有相应编号的行(RAND((*MAX(id((。
所以你得到了伪随机TID
我会添加
select DISTINCT iT.TID
即使有大量的行,随机也可以产生相同的数量。