MySQL でのカテゴリごとの上位行の選択
テーブル内の各カテゴリから限られた数の行を取得するには、分析関数を利用できます。 。ただし、MySQL はこれらの関数を直接提供しません。それでも、変数を使用してエミュレートすることは可能です。
分析関数のエミュレーション
次の MySQL クエリは、分析関数の機能をエミュレートして、各カテゴリの上位 3 行を選択します。 :
<code class="mysql">SELECT x.* FROM ( SELECT t.*, CASE WHEN @category != t.category THEN @rownum := 1 ELSE @rownum := @rownum + 1 END AS rank, @category := t.category AS var_category FROM TBL_ARTIKUJT t JOIN (SELECT @rownum := NULL, @category := '') r ORDER BY t.category ) x WHERE x.rank <= 3</code>
説明
このメソッドを使用すると、MySQL でサポートされていない分析関数に依存せずに、必要な機能を実装できます。
以上が分析関数を使用せずに MySQL でカテゴリごとの上位行を効率的に選択する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。