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

Ordre MySQL conditionnel par deux colonnes (d'égale importance)

Vous devez trouver la dernière date pour chaque catégorie dans une sous-requête, joindre cette sous-requête à votre table et trier par 3 champs :

SELECT p.* FROM products p
JOIN
( SELECT category_id, MAX(date) as category_date FROM products
  GROUP BY category_id ) pg
ON p.category_id = pg.category_id
ORDER BY pg.category_date DESC, p.category_id, p.date DESC