IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Détecter une position pour un caractère


Sujet :

Langage SQL

  1. #1
    Inactif  

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3 064
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 064
    Points : 4 605
    Points
    4 605
    Par défaut Détecter une position pour un caractère
    Bonjour ,

    Je cherche à identifier dans une chaine de caractère de type texte des anomalies de saisies.

    Je prend l'exemple le plus simple un email :

    monadresse@mondomaine.com > est valide

    monadresse@mondomaine.c0m > est invalide , contient un 0 au lieu du o

    ou encore

    monadresse@mondomaine.com.mx > est valide

    monadresse@mondomaine.c0m.mx > est invalide , contient un 0 au lieu du o ....

    En somme je cherche à ce que la fonction me retourne les anomalies après le dernier ou l'avant dernier caractère de référence donné (dans notre cas un point ). L'anomalie supposé dans mon exemple est chiffre dans le nom de domaine d'un email. Dans mon cas concret le caractère de référence serait le tiret et pas le point .

    Code mysql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select 'arobase point 0' ,  TRIM(LEADING  ' ' FROM id),TRIM(both  ' ' FROM mail)  
    from ma_table_
    where mail like  "%@%.%0%" ;

    Si une âme charitable peux éclairer ma lanterne

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Le plus pratique pour ce type de contrôle est d'utiliser les expressions rationnelles (regular expression).
    Mais ce n'est pas pris en charge par tous les SGBD... et tu ne précises pas celui que tu utilises.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3 064
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 064
    Points : 4 605
    Points
    4 605
    Par défaut
    Bonjour,

    Le SGBD en question est mysql via phpmyadmin et wamp .

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Alors REGEXP existe.

    Voir ici les règles pour les adrels...
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3 064
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 064
    Points : 4 605
    Points
    4 605
    Par défaut
    Bonjour ,

    Dans les faits les exemples suivant sont loin de tout être autorisé :

    Abc@example.com > ok
    Abc@10.42.0.1 > ok (déjà utilisé mais plutot valable en réseau local , je doute que ce type d'adresse soit "utilisable" pour envoyer un mail a monsieur Michu sur gmail/outlook/orange , certain provider l'interdisent même ... )
    Abc.123@example.com > ok

    Pour ces adresses là :

    user+mailbox/department=shipping@example.com
    !#$%&'*+-/=?^_`.{|}~@example.com
    "Abc@def"@example.com
    "Fred Bloggs"@example.com
    "Joe.\\Blow"@example.com
    Loïc.Accentué@voilà.fr
    Bien que "légal" sur le plan syntaxique , de plus en plus de provider limitent les caractères : [A-Z] , [0-9] , - , _ , + , . , & (plus rarement pour ce caractère).

    C'est quand même assez complexe à appliquer les réglages au niveau du regex :/

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3 064
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 064
    Points : 4 605
    Points
    4 605
    Par défaut
    Avec les regex ce qui est assez chiant c'est les cas particuliers ...

    Genre @domain.com , .cm ou .co . Les domaines composéq genre .com.au , com.mx ...

    Un domaine court genre 3.dk ... qui est valide et est rejettable car "trop courr" pour un nom de domaine .

    C'est compliqué , il y a des faux positifs .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD-2010] Créer une macro pour remplacer caractères accentués en code HTML
    Par spip93 dans le forum VBA Word
    Réponses: 2
    Dernier message: 29/10/2014, 16h25
  2. Réponses: 3
    Dernier message: 15/11/2010, 18h22
  3. Requête pour remplacer caractères dans une table
    Par elliott1961 dans le forum Installation
    Réponses: 5
    Dernier message: 16/01/2006, 01h47
  4. Réponses: 2
    Dernier message: 15/10/2005, 23h29
  5. Un spacer pour une position absolue
    Par Notilius dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 22/04/2005, 20h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo