Seleccionar las últimas 10 entradas de MySQL y ordenarlas

publicado por: Anonymous

Buenas,

Estoy utilizando el siguiente código para ordenar en función del número de visitas artículos que están dentro de una tabla de MySQL:

$statement = $conexion->prepare("SELECT * FROM art ORDER BY visitas DESC LIMIT 10");

Sin embargo, no es esto lo que quiero, de esta forma me ordena TODAS las entradas que tenga en la tabla, pero de nada me sirve tener artículos de hace 2 años por ejemplo en la sección de lo más visto. Quería saber si es posible a la hora de hacer la petición, seleccionar las 10 últimas entradas y ordenarlas por el número de visitas, en vez de que lo primero que haga sea ordenar todas las entradas por el número de visitas y después seleccionarme las 10 primeras.

solución

Quería saber si es posible a la hora de hacer la petición, seleccionar las 10 últimas entradas y ordenarlas por el número de visitas.

Aunque la respuesta de Lamak es buena, me parece que de forma muy sutil, no hace lo que pides. Porque el resultado final estará ordenado por fecha, no por visitas.

Para que obtengas los últimos 10 registros, y luego ordenar esos 10 registros por visitas debes usar la consulta siguiente:

select *
  from (select *
          from art
         order by fecha desc
         limit 10) t
 order by visitas desc
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *