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

MySQL Discussion :

extraction de quelque caractère


Sujet :

MySQL

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 132
    Points : 67
    Points
    67
    Par défaut extraction de quelque caractère
    bonjour,
    j'ai par exemple cette champ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pb de HSPA Rab setup sur SFX4149F11 depuis 18/11
    mon objectif est de prendre les trois caractères aprés le 'sur '.
    j'ai essayé avec cet fonction. Mais, dans le résultat il s'affiche vide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    delimiter |
    CREATE FUNCTION METTRE(s VARCHAR(2000)) RETURNS varchar(2000)
    DETERMINISTIC
           BEGIN
                   DECLARE open  INT;
                   DECLARE close  INT;
                   DECLARE someLimit  INT;
                   DECLARE str  VARCHAR(2000);
                   DECLARE toFind  VARCHAR(2000);
                   DECLARE nom VARCHAR(20000);
                   SET open = 1;
                   SET close = 1;
                   SET toFind = s ;
                   SET someLimit = 100;
                   SET str ='';
                   WHILE close > 0 and open > 0 and someLimit > 0 DO
                     SET someLimit = someLimit -1;
                     SET open = locate('sur',toFind);
                     IF open > 0 THEN
                       SET toFind = SUBSTRING(toFind,open);
                       SET close = locate(4,toFind);
                       IF close > 2 THEN
                          SET nom=SUBSTRING(toFind,2,close-2);
                          SET toFind = SUBSTRING(toFind,close); 
                       END IF;
                     END IF;
                   END WHILE;
                   return SUBSTRING(str,2);
     
           END |
    delimiter;
    merci d'avance.

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 055
    Points : 9 394
    Points
    9 394
    Par défaut
    Cette procédure me paraît bien complexe !
    J'aurais vu un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    i = instr(s , 'sur ')
    if i > 0 then 
        returns  (  substr( s, i+4,3) ;
    end if
    returns null ;
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 132
    Points : 67
    Points
    67
    Par défaut
    merci pour votre réponse.
    j'ai trouvé une autre solution pour mon travail.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select substring(trim(substring_index(Title,'sur ',-1)),1,3) as n from incident
    Mais je veux insérer le résultat dans une colonne 'Affected_CI' de la table 'incident' .mais, elle ne marche pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into  incident(Affected_CI) values (select substring(trim(substring_index(Title,'sur ',-1)),1,3) as n from incident)
    merci.

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 132
    Points : 67
    Points
    67
    Par défaut
    merci

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/09/2008, 13h53
  2. Relation entre 2 table sur quelques caractères seulement
    Par nomade333 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 19/03/2008, 18h26
  3. extractions chaine de caractères
    Par blackstrobe dans le forum Linux
    Réponses: 2
    Dernier message: 10/09/2007, 21h21
  4. Extraction Chaîne de Caractères
    Par adriano057 dans le forum Access
    Réponses: 5
    Dernier message: 19/07/2006, 16h55

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