par
Hubert Roksor » 22 févr. 2008, 11:10
You wescome
Je crois que t'as inversé l'ordre des colonnes dans ton exemple, vérifie que tout marche bien comme prévu même avec les cas les plus étranges. [Màj : ah ben non, j'avions mal lu le nom des colonnes] D'ailleurs, si on voulait pousser le bouchon, on pourrait utiliser FIELD() pour classer d'après le suffixe (ce qui est après le nombre), par exemple
Code : Tout sélectionner
ORDER BY (adr_numero + 0), FIELD(SUBSTR(adr_numero, 1 + LENGTH(a+0)), 'bis', 'ter')
Sans suffixe ou avec un suffixe inconnu, FIELD() retournerait 0. On pourrait ajouter '' (pas de suffixe) et inverser l'ordre pour mettre les "pas de suffixes" en premier, les suffixes connus ("bis", "b", "ter", etc...) et finalement les suffixes inconnus en dernier, eg
Code : Tout sélectionner
ORDER BY (adr_numero + 0), FIELD(SUBSTR(adr_numero, 1 + LENGTH(a+0)), 'ter', 'bis', '') DESC
You wescome :)
Je crois que t'as inversé l'ordre des colonnes dans ton exemple, vérifie que tout marche bien comme prévu même avec les cas les plus étranges. [Màj : ah ben non, j'avions mal lu le nom des colonnes] D'ailleurs, si on voulait pousser le bouchon, on pourrait utiliser FIELD() pour classer d'après le suffixe (ce qui est après le nombre), par exemple
[code]ORDER BY (adr_numero + 0), FIELD(SUBSTR(adr_numero, 1 + LENGTH(a+0)), 'bis', 'ter')[/code]
Sans suffixe ou avec un suffixe inconnu, FIELD() retournerait 0. On pourrait ajouter '' (pas de suffixe) et inverser l'ordre pour mettre les "pas de suffixes" en premier, les suffixes connus ("bis", "b", "ter", etc...) et finalement les suffixes inconnus en dernier, eg
[code]ORDER BY (adr_numero + 0), FIELD(SUBSTR(adr_numero, 1 + LENGTH(a+0)), 'ter', 'bis', '') DESC[/code]