[SQL, PHP] ORDER BY, avec un ordre à moi :P !
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
A voir également:
- Order by php
- Easy php - Télécharger - Divers Web & Internet
- By click downloader avis - Forum Enregistrement / Traitement audio
- Ads by cooking ✓ - Forum Virus
- Order@live-helper.com - Forum Consommation & Internet
- Expert php pinterest - Télécharger - Langages
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'
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 !
En effet, c'est magique. Je plussoie.