Salut,
En espérant avoir bien tout compris,
J'imagine que tu n'as pas la main sur la BDD, sinon je t'aurais dit de rajouter un champs 'cvx' par exemple, du coup c'est beaucoup plus facile :p
Quels sont les réultats possibles en variation ?
Est ce que tu as un caractère récurrent dans les résultats ? Ici en l’occurrence, je vois le tiret '-' dans 1.4 HDi - 68 cvx.
Si c'est le cas ex.
1.8D - 50 cvx,
2.0TFSi - 140,
1.4Hdi - 60 cvx,
1.4Tdi - 70 horses
Tu pourrais essayer un truc du genre :
SELECT * FROM table ORDER BY LPAD(REPLACE(table.colonne, '*-', ''),10 ,'0') ASC
Avec Laravel quelque chose comme ça (pas testé je suis pas sûr)
DB::select( DB::raw("SELECT * FROM table ORDER BY LPAD(REPLACE(table.colonne, '*-', ''),10 ,'0') ASC ) );