Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

mysql query PHP:quero que um item específico seja o primeiro e possa modificar a consulta de quantos itens serão exibidos


Acho que você precisa enumerar os valores, e as variáveis ​​são a maneira mais simples. Em seguida, uma junção adicional fornece as informações necessárias para ordenar pelos nomes mais frequentes na tabela:
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;