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.