mysql - 加密 MySQL,这个查询是做什么的?
问题描述
所以我正在处理一些工作内容并看到了这一点。有人可以解释一下这是做什么的吗?我唯一知道的是 Active_Tournaments 是充满 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(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_Tournaments 的随机 TID
SELECT @t := @t + 1 id
FROM Active_Tournaments,
(SELECT @t := 0) AS s
这为 Active_Tournaments 中的每一行提供了一个行号
然后你得到最高的行号 MAX(id) 并将它乘以一个随机数。
使用 CEIL,您将再次获得一个整数。
在第一个 SELECT
(
SELECT @s := @s + 1 id, TID FROM Active_Tournaments, (SELECT @s := 0) AS s
) as iT
您再次将行号添加到 Active_Tournaments 并仅选择在 CEIL(RAND() * MAX(id)) 中具有相应编号的行。
所以你得到伪随机 TID
我会补充
select DISTINCT iT.TID
即使有大量的行,随机也可以产生相同的数字。
推荐阅读
- python - 如何计算 python pandas 数据帧的第一条和最后一条记录之间的时间差异
- azure - Azure 管道“WinRMCustomScriptExtension”基础连接在非公共 VM 中关闭
- python - 在没有附加模块的 lambda 函数中使用反 cos
- vim - 如何在 Vim 中始终将文本保存在缓冲区中>
- excel - 将选项卡组合在一起时设置条件的问题
- css - :not css 选择器未按预期工作
- c++ - 关于复制构造函数的一个棘手问题
- javascript - 无法使用 jsPDF 将 HTML 转换为 PDF
- list - Flutter - 无法修改列表
- java - 如果网络可用,则从服务器获取 JSON