Mysql
 sql >> Base de données >  >> RDS >> Mysql

requête mysql PHP :je veux qu'un élément spécifique soit le premier et je peux modifier la requête sur le nombre d'éléments à afficher

Je pense que vous devez énumérer les valeurs, et les variables sont le moyen le plus simple. Ensuite, une jointure supplémentaire vous donne les informations dont vous avez besoin pour trier par les noms les plus fréquents dans le tableau :

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;