Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysql query PHP:Ich möchte ein bestimmtes Item zuerst haben und kann die Abfrage ändern wie viele Items angezeigt werden sollen

Ich denke, Sie müssen die Werte aufzählen, und Variablen sind der einfachste Weg. Dann gibt Ihnen ein zusätzlicher Join die Informationen, die Sie brauchen, um nach den häufigsten Namen in der Tabelle zu ordnen:

select t.*
from (select t.*,
             (@rn := if(@n = name, @rn + 1,
                        if(@rn := name, 1, 1)
                       )
             ) as rn
      from t cross join
           (select @n := '', @rn := 0
      order by name
     ) t join
     (select name, count(*) as cnt
      from t
      group by name
     ) tn
     on t.name = tn.name
where rn <= 4
order by cnt desc, name;