Partage
  • Partager sur Facebook
  • Partager sur Twitter

Trier les données, mais N° 2 en dernier

Sujet résolu
4 août 2018 à 4:47:03

Hello,

Je souhaite trier mes données SQL, jusque là rien d’extraordinaire, voici ma simple requête :

SELECT * FROM cars WHERE id_cat IN (1, 2, 3, 4) ORDER BY id_cat

Mais je souhaite que toutes les id_cat n°2 soit affichées en dernier.

Comment puis-je effectuer cela ?

Cordialement

-
Edité par Poliak 4 août 2018 à 4:48:02

  • Partager sur Facebook
  • Partager sur Twitter
Steve Jobs est un sacré magicien, avec une seule pomme, il a fait naître des millions de poires.
7 août 2018 à 2:45:07

julp a écrit:

ORDER BY id_cat = 2, id_cat


Ouais, mais si parle exemple, l'id_cat que je veux en dernier est "17" et que y'a 20, 21 etc après, comment puis-je indiquer à la requête que je souhaite l'id_cat n°17 en dernier ?

modification : Désolé; j'ai oublié de préciser cela au début de mon sujet.

-
Edité par Poliak 7 août 2018 à 2:52:08

  • Partager sur Facebook
  • Partager sur Twitter
Steve Jobs est un sacré magicien, avec une seule pomme, il a fait naître des millions de poires.
7 août 2018 à 11:39:04

Pas compris.

Tu dois donc forger dynamiquement ta requête ?

Tu cherches une fonction (MySQL) comme FIND_IN_SET ou FIELD ?

-
Edité par julp 7 août 2018 à 11:39:44

  • Partager sur Facebook
  • Partager sur Twitter
7 août 2018 à 22:53:13

Si je tri :

WHERE id_cat IN (1, 2, 3, 4, 17, 20, 21) ORDER BY id_cat

Le numéro 17 sera en 5eme position, mais je souhaite le mettre en dernier.

  • Partager sur Facebook
  • Partager sur Twitter
Steve Jobs est un sacré magicien, avec une seule pomme, il a fait naître des millions de poires.
7 août 2018 à 23:29:55

Si c'est spécifiquement 17 que tu veux en dernier, ma première réponse tient toujours.

Si tu veux un ordre pour chaque valeur, il faut que tu regardes les fonctions que je t'ai donné (ex : ORDER BY FIELD(id_cat, 21, 3, 1, 20, 4, 2, 17))

-
Edité par julp 7 août 2018 à 23:31:23

  • Partager sur Facebook
  • Partager sur Twitter
7 août 2018 à 23:59:13

julp a écrit:

Si c'est spécifiquement 17 que tu veux en dernier, ma première réponse tient toujours.

Si tu veux un ordre pour chaque valeur, il faut que tu regardes les fonctions que je t'ai donné (ex : ORDER BY FIELD(id_cat, 21, 3, 1, 20, 4, 2, 17))

-
Edité par julp il y a 27 minutes


en effet, ORDER BY FIELD est magique :) j'ai mal lu ta réponse, désolé et encore merci, fonctionne comme je le souhaite.
  • Partager sur Facebook
  • Partager sur Twitter
Steve Jobs est un sacré magicien, avec une seule pomme, il a fait naître des millions de poires.