首頁  >  文章  >  資料庫  >  如何在沒有分析函數的情況下從 MySQL 中選擇每個類別的前 3 行?

如何在沒有分析函數的情況下從 MySQL 中選擇每個類別的前 3 行?

Patricia Arquette
Patricia Arquette原創
2024-10-27 23:23:30545瀏覽

How to Select the Top 3 Rows from Each Category in MySQL Without Analytic Functions?

從MySQL 中的多個類別中選擇前3 行

從表中的每個類別中選擇前3 行可能具有挑戰性。如最初嘗試所述,一種利用視圖和子查詢的方法可能會傳回不正確的結果。

更有效的方法是使用分析函數,而 MySQL 本身並不支援函數。但是,可以使用變數來模擬這些函數。操作方法如下:

此查詢使用 JOIN 操作初始化變數 @rownum 和 @category。然後,它根據每一行的類別為其分配排名,如果類別發生變化,排名就會遞增。

最後,查詢僅選擇排名為 3 或更低的行。請注意,您可能需要修改 SELECT x.* 子句以僅包含所需的欄位。

以上是如何在沒有分析函數的情況下從 MySQL 中選擇每個類別的前 3 行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn