首頁 > 資料庫 > mysql教程 > 如何從MySQL資料庫中的每個類別中隨機選擇一筆記錄?

如何從MySQL資料庫中的每個類別中隨機選擇一筆記錄?

Susan Sarandon
發布: 2024-12-28 02:02:14
原創
438 人瀏覽過

How to Select One Random Record from Each Category in a MySQL Database?

跨多個類別隨機選擇資料庫

這裡提出的挑戰是從資料庫中的每個類別中檢索單一隨機記錄。 Items 表包含這些記錄,每個記錄都會指派給對應的 Category 表指定的類別。

要完成此任務,可以透過 RAND() 函數和 LIMIT 1 子句利用 MySQL 固有的隨機性。然而,這裡的獨特之處是需要為每個不同的類別選擇一個隨機記錄。

以下查詢優雅地解決了這個挑戰:

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 後續過濾的基礎。這透過根據類別 ID (cid) 對「shuffled_items」進行分組,確保每個類別都有記錄。

雖然這種方法可能不具備出色的速度,但它有效地解決了跨多個隨機記錄選擇的挑戰。類別。歡迎提出其他優化建議,進一步增強此查詢的實用性。

以上是如何從MySQL資料庫中的每個類別中隨機選擇一筆記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板