Laravel: Ordenar por whereIn() con Eloquent orderByRaw() en MySQL

Al realizar consultas de Eloquent en Laravel se pueden obtener varios registros en una sola query utilizando whereIn en vez de where.

Sin embargo, el orden de los registros devueltos por la query puede no coincidir con el orden de las ids en el array.

En ese caso, podemos utilizar la consulta orderByRaw para aplicar un orden concreto a la consulta:

Ten en cuenta que esto funciona con MySQL, en caso de que utilices otras bases de datos como PostgreSQL puede que no te funcione.


Otros usos de orderByRaw()

->orderByRaw se puede combinar con otros ->orderBy y se puede utilizar para todo tipo de consultas complejas, por ejemplo, para ordenar los registros según el tiempo que ha transcurrido entre que se ha creado un registro y su edición.