[SQL, PHP] ORDER BY, avec un ordre à moi :P !
Résolu/Fermé
A voir également:
- Order by php
- Easy php - Télécharger - Divers Web & Internet
- Message bounced by administrator - Forum Mail
- Home by me - Télécharger - 3D
- Moa by bva avis ✓ - Forum Vos droits sur internet
- Zen by deezer avis - Télécharger - Santé & Bien-être
4 réponses
Si tu veux trier dans un ordre différent des valeurs du SET et que tu peux créer ne fonction, je te propose cette requête qui utilise une fonction personnalisée (ma table s'appelle 'lettre'):
J'avais créé une colonne de type SET avec Lima,Alpha et Whisky et si je veux avoir l'ordre Whisky, Lima, Alpha et les autres (null ou vide) j'ai créé la fonction :
Avec ça j'obtiens bien :
"ID","motcle","libelle"
1,"Whisky","W"
3,"Alpha","A"
2,"Lima","L"
4,,"B"
5,"","C"
alors que si je fais
J'obtiens :
"ID","motcle","libelle"
4,,"B"
5,"","C"
2,"Lima","L"
3,"Alpha","A"
1,"Whisky","W"
C'est pas magique, ça ?
Cordialement
SELECT * FROM lettres order by monordre(motcle)
J'avais créé une colonne de type SET avec Lima,Alpha et Whisky et si je veux avoir l'ordre Whisky, Lima, Alpha et les autres (null ou vide) j'ai créé la fonction :
CREATE FUNCTION monordre (valeur VARCHAR(10)) RETURNS INT DETERMINISTIC BEGIN DECLARE return_value INT; IF (valeur = 'Whisky') THEN SET return_value = 0; ELSEIF (valeur = 'Lima') THEN SET return_value = 1; ELSEIF (valeur = 'Alpha') THEN SET return_value = 2; ELSE SET return_value = 1000; END IF; RETURN return_value; END
Avec ça j'obtiens bien :
"ID","motcle","libelle"
1,"Whisky","W"
3,"Alpha","A"
2,"Lima","L"
4,,"B"
5,"","C"
alors que si je fais
SELECT * FROM lettres order by motcle
J'obtiens :
"ID","motcle","libelle"
4,,"B"
5,"","C"
2,"Lima","L"
3,"Alpha","A"
1,"Whisky","W"
C'est pas magique, ça ?
Cordialement
Bonjour
SELECT * FROM TBL WHERE nom='Lima' UNION SELECT * FROM TBL WHERE nom='Alpha' UNION SELECT * FROM TBL WHERE nom='Wisky' UNION SELECT * FROM TBL WHERE nom <> 'Lima' and nom <> 'Alpha' and nom <> 'Wisky'
Utilisateur anonyme
6 juil. 2011 à 14:35
6 juil. 2011 à 14:35
Bonjour... Re-bonjour plutôt !
Java4ever, ta technique est splendide et compréhensible à souhait, mais juste un peu longue. J'ai donc préféré le UNION du père (merci à toi), en mettant entre parenthèses les 3 requêtes SELECT. ORDER BY ne fonctionnait pas, il remettait tout dans l'ordre, non séparément. J'ai donc utilisé GROUP BY est ça marche super !
Merci à vous deux !
A bientôt !
Java4ever, ta technique est splendide et compréhensible à souhait, mais juste un peu longue. J'ai donc préféré le UNION du père (merci à toi), en mettant entre parenthèses les 3 requêtes SELECT. ORDER BY ne fonctionnait pas, il remettait tout dans l'ordre, non séparément. J'ai donc utilisé GROUP BY est ça marche super !
Merci à vous deux !
A bientôt !
Modifié par le père le 6/07/2011 à 11:53
En effet, c'est magique. Je plussoie.