0
我正在編寫代碼,在給定視頻中的一些標籤後,返回其他具有類似標籤的視頻。它的工作原理,但我試圖隨機化結果..所以我搜索並發現ORDER BY RAND()
將是相當緩慢。在mysql中過濾器之後隨機選擇
經過一段時間,我發現this article —所以我試圖調整它到我的代碼;這裏是我在返回一個隨機視頻的嘗試:
SELECT r1.id, name, site, siteid
FROM video AS r1 JOIN (
SELECT (RAND() * (SELECT MAX(id) FROM video)) AS id
) AS r2
WHERE r1.id >= r2.id
LIMIT 4
,這裏是我的代碼,以便查找視頻與類似的標籤:
SELECT v.name, v.site, v.siteid, v.id
FROM video v
JOIN video_tag vt ON vt.id_video = v.id
WHERE vt.id_tag IN ('1','2')
GROUP BY v.id
HAVING COUNT(DISTINCT vt.id_tag) = 2
然而,當我試圖把它們放在一起,所以我可以得到4個隨機視頻使用類似的標籤,我只是嘗試了所有的語法錯誤。
有關如何將它們放在一起的任何建議?
而如果選擇返回視頻的houndreds呢?仍然不會影響性能? – funky