如何在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中文網其他相關文章!