從MySQL 中的每個類別中選擇單一隨機記錄
要從指定資料庫中的每個類別中擷取隨機項目,需要使用兩個-建議採用階段方法。首先,使用查詢以隨機順序組合項目和類別表:
SELECT c.id AS cid, c.category, i.id AS iid, i.name FROM categories c INNER JOIN items i ON c.id = i.category ORDER BY RAND();
此查詢將以隨機順序顯示連接到各自類別的所有項目。若要將選擇限制為每個類別一項,請將上一個查詢嵌套在部分 GROUP BY 語句中:
SELECT * FROM ( SELECT c.id AS cid, c.category, i.id AS iid, i.name FROM categories c INNER JOIN items i ON c.id = i.category ORDER BY RAND() ) AS shuffled_items GROUP BY cid;
此部分 GROUP BY 確保每個類別僅包含一個隨機選擇的項目。請務必注意,ORDER BY 子句必須在 GROUP BY 子句之前套用,此方法才能正常運作。
雖然此方法可能不是最快的,但它提供了一種選擇單一隨機記錄的可靠方法來自 MySQL 資料庫中的每個類別。
以上是如何從MySQL中的每個類別中隨機選擇一筆記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!