我需要在视频页面上显示 10 个与该视频属于同一类别的相关视频。问题是每个类别可能有数十万行,因此运行 RAND() 是不可能的,我不想创建一个与我的 innodb 表匹配的 myisam 表,然后进行全文搜索相关。
我不确定我的想法是否可行,但我想选择按日期排序的该类别的最新行中的 100 行,然后从该集中随机选择 10 行。
这可能吗?您能给我指出正确的方向吗?
我假设您有一个简单的表,其身份名为ID,您可以执行以下操作:
SELECT *
FROM (
SELECT ID, Name, VideoFile
FROM VideoTable
ORDER BY ID DESC
LIMIT 100
) Derived
ORDER BY RAND()
LIMIT 10
Run Code Online (Sandbox Code Playgroud)