我進行了搜索,但找不到有效的解決方案。這裡需要一點幫助。
假設我有一個包含超過 100 筆記錄的表,首先,我需要按一定順序找出前 20 筆記錄,然後我需要從這 20 筆記錄中隨機挑選 5 筆記錄。 這是我的查詢,
SELECT a FROM tableA WHERE b IN ( SELECT b FROM tableA WHERE c="x" ORDER BY d DESC LIMIT 20 ) ORDER BY RAND() LIMIT 5;
讓我知道如何修正它。謝謝。
內部查詢選擇 20 個按 ID 排序的用戶,外部查詢使用 RAND() 函數隨機排序,限制為 5 :)
SELECT * FROM ( SELECT * FROM A ORDER BY id desc LIMIT 20 ) T1 ORDER BY rand() limit 5
內部查詢選擇 20 個按 ID 排序的用戶,外部查詢使用 RAND() 函數隨機排序,限制為 5 :)