¿Cómo ordeno una tabla MySQL por dos columnas?
Lo que quiero son los artículos ordenados por las calificaciones más altas primero, luego la fecha más reciente. Como ejemplo, esto sería una salida de muestra (el número izquierdo es la calificación, luego el título del artículo, luego la fecha del artículo)
50 Este artículo es genial | 4 de febrero de 2009 35 Este artículo es bastante bueno | 1 de febrero de 2009 5 | Este artículo no es tan bueno | 25 de enero de 2009
El SQL relevante que estoy usando es:
ORDER BY article_rating, article_time DESC
Puedo ordenar por uno u otro, pero no por ambos.
mysql
sql-order-by
Billynoah
fuente
fuente
se ordenará por article_time solo si hay dos artículos con la misma calificación. Por todo lo que puedo ver en su ejemplo, esto es exactamente lo que sucede.
pero considere:
fuente
DESC
al final se ordenarán por ambas columnas descendentes. Tienes que especificarASC
si lo quieres de otra manerafuente
Esto quizás ayude a alguien que está buscando la forma de ordenar la tabla por dos columnas, pero de manera paralela. Esto significa combinar dos tipos usando la función de clasificación agregada. Es muy útil cuando, por ejemplo, recupera artículos utilizando la búsqueda de texto completo y también en relación con la fecha de publicación del artículo.
Este es solo un ejemplo, pero si capta la idea, puede encontrar muchas funciones agregadas para usar. Incluso puede pesar las columnas para preferir una a la segunda. La función mía toma extremos de ambos tipos, por lo tanto, las filas más valoradas están en la parte superior.
Lo siento si existen soluciones más simples para hacer este trabajo, pero no he encontrado ninguna.
fuente
Lo siguiente ordenará sus datos dependiendo de ambas columnas en orden descendente.
fuente