在 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中文网其他相关文章!