Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1142 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySQL] REGEXP dans un ORDER BY

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MySQL] REGEXP dans un ORDER BY

n°1602806
sire de Bo​tcor
Armorican way of life
Posté le 23-08-2007 à 10:50:00  profilanswer
 

Bonjour !
 
      Je viens de tester les expressions régulières avec MySQL 4.1
Ça semble fonctionner, mais je me demande s'il est possible de les utiliser sur le ORDER BY ?
 
En fait j'ai une table avec des factures et des avoirs, les factures commencent par F (genre F000257)  
et les avoirs commencent par A (genre A000001), il y a toujours 6 chiffres après la lettre.
Un avoir est créé avec les chiffres de la facture à laquelle il correspond.
 
Mon but est d'afficher factures et avoirs dans un tableau  
de manière à ce que un avoir apparaisse juste sous sa facture :
F000001
F000002
A000002
F000003
 
Par défaut, tous les avoirs sont rangés en premier (car ils commencent par A) :
A000002
F000001
F000002
F000003
 
 
J'ai essayé sans succès des requêtes comme celle-ci :
 
SELECT *
FROM factures
ORDER BY N_FACTURE REGEXP "^[AF][0-9]{6}"
 
mais il y manque clairement qqch qui dirait qu'il doit ignorer A ou F
je ne vois pas comment le faire :(  
 
 
si qqun a une idée :jap:


Message édité par sire de Botcor le 23-08-2007 à 10:56:09

---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron
mood
Publicité
Posté le 23-08-2007 à 10:50:00  profilanswer
 

n°1602816
sire de Bo​tcor
Armorican way of life
Posté le 23-08-2007 à 10:56:39  profilanswer
 

J'ai trouvé !!
Si ça peut aider qqun, il n'y a en fait pas besoin d'utiliser les regexp :
 
SELECT *
FROM factures
ORDER BY SUBSTRING( N_FACTURE, 2, 6 )


---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron
n°1602829
anapajari
s/travail/glanding on hfr/gs;
Posté le 23-08-2007 à 11:02:16  profilanswer
 

j'aurais ajouter une deuxieme clause sur l'order avec un substring 1,1 en desc, car là (sans connaitre les indexs) il n'y a pas de raisons que F apparaisse avant A ( et donc que tes factures soient avant tes avoirs)

n°1602845
sire de Bo​tcor
Armorican way of life
Posté le 23-08-2007 à 11:20:12  profilanswer
 

anapajari a écrit :

j'aurais ajouter une deuxieme clause sur l'order avec un substring 1,1 en desc, car là (sans connaitre les indexs) il n'y a pas de raisons que F apparaisse avant A ( et donc que tes factures soient avant tes avoirs)


exact, je l'ai d'ailleurs fait aussi ;)  :jap:
 
SELECT *
FROM factures  
ORDER BY SUBSTRING(N_FACTURE, 2, 6) ASC, SUBSTRING(N_FACTURE, 1, 1) DESC


Message édité par sire de Botcor le 23-08-2007 à 11:21:22

---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySQL] REGEXP dans un ORDER BY

 

Sujets relatifs
[SQL] Probleme avec ORDER BYerreur mysql server
Problème d'erreur: Can't connect to local MySQLSmarty et tableau Mysql
[MySQL] SELECT avec LEFT JOIN et LIMIT[Résolu][MYSQL] lister les doublons + rapidement
[MYSQL] Soucis avec matching sur requete moteur de rechercheMysql
[MySQL] probleme de clé etrangeredefi regexp un peu compliqué..
Plus de sujets relatifs à : [MySQL] REGEXP dans un ORDER BY


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR