gpt4 book ai didi

mysql - 无法理解 mysql 查询

转载 作者:行者123 更新时间:2023-11-29 00:30:52 26 4
gpt4 key购买 nike

我昨天有一个关于通过 rand() 排序 mysql 查询的问题。我在这里得到了一个很好的答案: https://stackoverflow.com/a/16597706/2333744

答案的代码如下。

create temporary table results as
(Select *, @rn := @rn + 1 as rn, rand() as therand
from table1 inner join
table2
on table1.in = table2.in cross join
(select @rn := 0) const
where table1.T = A
);

select *
from results
where therand < 1000/@rn
order by therand
limit 500;

我什么都懂,除了

cross join (select @rn : = 0) const

我不确定这是在做什么以及它是否重要。当我删除它时,性能没有任何变化。谁能看懂这部分?

最佳答案

User-Defined Variable @rn 在这种情况下仅用于制作序列号列,如 the answer 中所述。上一个问题的来源。

const 在这里没有用作关键字...所以不要被它“const-fused”。它只是 (select @rn := 0) 的给定名称...它可能是任何其他名称,如 AB , oops, aah, etc ...(见下面第二个链接)

请参阅以下链接中的示例使用,以更好地理解 User-Defined Variables :

  • Create a Cumulative Sum Column in MySQL
  • MySql: Select Query- Make A Cumulative Sum Column
  • 关于mysql - 无法理解 mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16614375/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com