加密MySQL,这个查询做什么?
所以我看了一些工作资料,看到了这个。谁能给我解释一下这是干什么的吗?我所知道的唯一一件事是,活动的_锦标赛是充满md5散列值的视图加密MySQL,这个查询做什么?,mysql,Mysql,所以我看了一些工作资料,看到了这个。谁能给我解释一下这是干什么的吗?我所知道的唯一一件事是,活动的_锦标赛是充满md5散列值的视图 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(
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;
提前感谢它显示了一些来自活跃锦标赛的randon TID
SELECT @t := @t + 1 id
FROM Active_Tournaments,
(SELECT @t := 0) AS s
这将为活动的_锦标赛中的每一行提供一个行号
然后得到最大行数MAX(id)并将其乘以一个随机数
使用CEIL,您将再次获得一个整数
在第一个选项中,选择
(
SELECT @s := @s + 1 id, TID FROM Active_Tournaments, (SELECT @s := 0) AS s
) as iT
再次将行号添加到活动的_锦标赛中,并仅选择在CEIL中具有相应编号的行(RAND()*MAX(id))
所以你得到了伪随机TID
我想补充一点
select DISTINCT iT.TID
即使有大量行,random也可能产生相同的行数。如果没有ORDER BY子句,变量赋值是任意的,因此没有意义