REGEXP : distinguer .1 de .10 - SQL/NoSQL - Programmation
Marsh Posté le 24-08-2006 à 14:20:21
"^\.1(\..*)"
(dans les regexp, "." signifie "n'importe quel caractère)
Marsh Posté le 24-08-2006 à 14:27:04
Merci pour ta participation Elmoricq, cependant
SELECT * FROM matable WHERE dossier REGEXP "^\.1(\..*)" |
ET
SELECT * FROM matable WHERE dossier REGEXP "^\.10(\..*)" |
me retournent les mêmes résultats alors que dans ma base, je n'ai aucun enregistrement pour ".1" mais j'en ai un pour ".10".
Faut changer un truc mais quoi ![]()
Marsh Posté le 24-08-2006 à 14:57:03
En réflechissant deux secondes de plus que d'habitude j'ai trouvé la solution que je vous donne ci-dessous :
Ceci ne retourne pas de résultat (car il n'y en a pas) :
SELECT * FROM matable WHERE dossier REGEXP "^.1([.][0-9]+)*$" |
Alors que cette requête retourne un seul résultat :
SELECT * FROM matable WHERE dossier REGEXP "^.10([.][0-9]+)*$" |
Donc le .1 ne pique pas les résultats de .10 et tout le monde il est content (moi le premier
)
Encore merci à Elmirocq ![]()
Marsh Posté le 24-08-2006 à 14:15:33
Salut la compagnie,
J'ai un souci avec une requête SQL et les résultats qu'elle me retourne.
Je souhaite afficher tous les enregistrements dont un champ "dossier" contient par exemple :
.1 ou .1.1 ou .1.2 (toutes les combinaisons possibles à base de .1) etc...
Ca j'arrive le faire avec cette requête :
SELECT * FROM matable WHERE dossier REGEXP "^.1(.*)"
Le souci, c'est que les résultats retournés sont les mêmes avec ce dossier : .10
Je voudrai avoir uniquement les enregistrements dont le champs dossier soit : .10 ou .10.1 ou .10.1.23 etc...
Là le "0" du ".10" est capturé par la parenthèse "(.*)" de la requête pour le ".1".
Mais je suis bloqué là. Avez-vous une petite aide à m'apporter ?
Merci.