如何在 MySQL 中返回每个类别的前 5 条记录
从每个类别返回有限数量的记录是常见的要求数据库应用程序。在返回每个菜单前 5 个菜单项的特定情况下,由于子查询为每个菜单返回多行,导致“子查询返回超过 1 行”错误,因此出现了挑战。
要克服这个问题问题,一种常见的方法是使用副作用变量。以下是解决该错误的更正查询:
SELECT profilename, name FROM ( SELECT m.profilename, s.name, @r:=case when @g=m.profilename then @r+1 else 1 end r, @g:=m.profilename FROM (select @g:=null,@r:=0) n cross join menus m left join menuitems s on m.menuid = s.menuid ) X WHERE r <= 5
分解查询:
通过利用副作用变量,此查询确保它每个类别最多返回 5 条记录,解决了原来的错误。
以上是如何在 MySQL 中返回每个类别中的前 5 项:处理子查询错误?的详细内容。更多信息请关注PHP中文网其他相关文章!