MS-DOS_1991 Posté 31 Août 2005 Posté 31 Août 2005 (modifié) Bonjour, Je voudrais savoir s'il existe un moyen d'utiliser les expressions régulières dans une requête MySQL par exemple pour rechercher les numéross de telephone commençant par 03 $requete = "SELECT email FROM table WHERE telephone=preg_match("^03")";$resultat = mysql_query($requete); Modifié 31 Août 2005 par MS-DOS_1991
loufoque Posté 31 Août 2005 Posté 31 Août 2005 WHERE telphone REGEXP '^03' je crois. Lis la doc de mysql.
MS-DOS_1991 Posté 31 Août 2005 Auteur Posté 31 Août 2005 (modifié) Salut loufoque et merci de ta réponse Voici ce que dit la doc de MySQL: Annexe F. Expressions régulières MySQL Une expression régulière (regex) est la meilleure méthode pour spécifier une recherche complexe. MySQL utilise l'implémentation de Henry Spencer des expressions régulières qui tend à être conforme à POSIX 1003.2. MySQL en utilise la version étendue. See Annexe B, Crédits. MySQL la version améliorée pour supporter les expressions régulières effectuées avec REGEXP dans les commandes SQL. See Section 3.3.4.7, « Recherche de modèles ». Ceci est une référence simplifiée qui n'aborde pas les détails. Pour avoir plus d'informations, reportez-vous à la page de manuel regex(7) de Henry Spencer. Ce manuel est inclus dans la distribution MySQL, dans le fichier regex.7 du dossier regex. Une expression régulière décrit un jeu de chaînes de caractères. La plus simple est celle qui ne comporte pas de caractères spéciaux. Par exemple, l'expression régulière bonjour trouvera bonjour et rien d'autre. Les expression régulières non-triviales utilisent des constructions spéciales pour pouvoir trouver plus d'une chaîne. Par exemple, l'expression régulière bonjour|monde trouve la chaîne bonjour ou la chaîne monde. Voici un exemple encore plus complexe : l'expression régulière B[an]*s trouve l'une des chaînes suivantes Bananas, Baaaaas, Bs, et n'importe quelle autre chaîne commenžant par un B, se terminant par un s, et contenant n'importe quel nombre de a et de n au milieu. Une expression régulière peut utiliser l'un des caractères spéciaux ou constructions suivants : ^ Correspond au début de la chaîne. mysql> SELECT "fo\nfo" REGEXP "^fo$"; -> 0 mysql> SELECT "fofo" REGEXP "^fo"; -> 1 $ Correspond à la fin de la chaîne. mysql> SELECT "fo\no" REGEXP "^fo\no$"; -> 1 mysql> SELECT "fo\no" REGEXP "^fo$"; -> 0 . N'importe quel caractère (nouvelle ligne inclus). mysql> SELECT "fofo" REGEXP "^f.*"; -> 1 mysql> SELECT "fo\nfo" REGEXP "^f.*"; -> 1 a* Correspond à toute séquence de zéro ou plus caractères a. mysql> SELECT "Ban" REGEXP "^Ba*n"; -> 1 mysql> SELECT "Baaan" REGEXP "^Ba*n"; -> 1 mysql> SELECT "Bn" REGEXP "^Ba*n"; -> 1 a+ Correspond à toute séquence de un ou plus caractères a. mysql> SELECT "Ban" REGEXP "^Ba+n"; -> 1 mysql> SELECT "Bn" REGEXP "^Ba+n"; -> 0 a? Correspond à zéro ou un caractère a. mysql> SELECT "Bn" REGEXP "^Ba?n"; -> 1 mysql> SELECT "Ban" REGEXP "^Ba?n"; -> 1 mysql> SELECT "Baan" REGEXP "^Ba?n"; -> 0 de|abc Correspond aux séquences de de ou de abc. mysql> SELECT "pi" REGEXP "pi|apa"; -> 1 mysql> SELECT "axe" REGEXP "pi|apa"; -> 0 mysql> SELECT "apa" REGEXP "pi|apa"; -> 1 mysql> SELECT "apa" REGEXP "^(pi|apa)$"; -> 1 mysql> SELECT "pi" REGEXP "^(pi|apa)$"; -> 1 mysql> SELECT "pix" REGEXP "^(pi|apa)$"; -> 0 (abc)* Correspond à zéro ou plus séquences de abc. mysql> SELECT "pi" REGEXP "^(pi)*$"; -> 1 mysql> SELECT "pip" REGEXP "^(pi)*$"; -> 0 mysql> SELECT "pipi" REGEXP "^(pi)*$"; -> 1 (texte reformatté) Modifié 31 Août 2005 par MS-DOS_1991
MS-DOS_1991 Posté 3 Septembre 2005 Auteur Posté 3 Septembre 2005 Rebonjour, euh... j'ai un petit doute La requete suivante est-elle correcte ? "DELETE id, contenu FROM table WHERE contenu REGEXP ^[B][0-9]{2}$"// On supprime les lignes dont l'id est B00, B01, B02, ..., Bxx
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant