昨日、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
これが何をしているのか、それが重要かどうかはわかりません。削除しても、パフォーマンスの変化はありません。この部分を理解できる人はいますか?