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

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

DDD
發布: 2024-12-26 15:55:14
原創
624 人瀏覽過

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

從MySQL 中的每個類別中選擇一條隨機記錄

此資料庫查詢涉及從表中的每個類別中選擇一條隨機記錄。提供的表包含一個「Items」表,其中包含「id」、「name」和「category」列。每個項目都屬於帶有“id”和“category”列的“Categories”表中表示的七個類別之一。

要有效地處理此查詢,您可以結合使用聯結和 RAND() 函數。以下是完成該任務的查詢:

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
登入後複製

此查詢首先連接「類別」列上的「類別」和「項目」表,以檢索所有項目及其對應的類別。 ORDER BY RAND() 子句對結果套用隨機排序。隨後,查詢被包裝在子查詢中並按“cid”列分組。這種分組確保每個類別僅限於單一隨機記錄。

請注意,對於大型表,效能最佳化可能是必要的。如果查詢運作緩慢,請考慮使用 MySQL 的 TEMPORARY TABLES 或在「category」欄位上建立索引。

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

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