0

その動画と同じカテゴリの動画ページに 10 件の関連動画を表示する必要があります。問題は、各カテゴリに数十万行が存在する可能性があるため、RAND() を実行することは問題外であり、innodb テーブルに一致する myisam テーブルを作成してから、関連する全文検索を行いたくないということです。

私のアイデアが可能かどうかはわかりませんが、そのカテゴリの最新の行を日付順に 100 行選択し、そのセットからランダムに 10 行だけ選択したいと考えています。

これは可能ですか?正しい方向に向けてください。

4

2 に答える 2

4

という名前の ID を持つ単純なテーブルがあり、次のIDようなことができると仮定しています。

SELECT *
FROM (
  SELECT ID, Name, VideoFile
  FROM VideoTable
  ORDER BY ID DESC
  LIMIT 100
) Derived
ORDER BY RAND()
LIMIT 10
于 2013-03-20T02:51:17.543 に答える
0

select * from (select * from table ORDER BY DESC LIMIT 100) ORDER BY rand() LIMIT 10

于 2013-03-20T02:51:28.047 に答える