昨天我有一个关于通过 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
我不确定这是在做什么以及它是否重要。当我删除它时,我没有得到任何性能变化。任何人都可以理解这部分吗?