Mengembalikan 5 Item Teratas dari Setiap Kategori dalam MySQL
Cabaran:
Mendapatkan semula 5 menu teratas item daripada setiap kategori dalam pangkalan data yang terdiri daripada dua jadual, "menu" dan "menuitems."
Penyelesaian:
Kod yang dibentangkan bertujuan untuk memaparkan 5 item teratas setiap kategori menu. Walau bagaimanapun, ia kembali dengan ralat disebabkan oleh subkueri mendapatkan semula berbilang baris. Untuk menangani perkara ini, pembolehubah kesan sampingan boleh digunakan untuk menjejaki kedudukan setiap baris dalam kategori.
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
Pecahan:
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan 5 Item Menu Teratas dari Setiap Kategori dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!