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 :

Supprimer caractère dans une chaine


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Supprimer caractère dans une chaine
    Bonsoir

    quelqu'un peut me dire comment faire une requete SQL pour effacer des caractères dans une chaine de caractère

    dans ma table j'ai des champs sous forme :

    http://XXX.adectab.XXXX.jpg avec XXXX variable

    Je vaudrais supprimer les 4 caractères en rouge pour tomber sur ceci

    http://adectab.XXXX.jpg

    merci de votre aide

  2. #2
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Deux questions :

    1 Quel SGBD ?

    2 Les caractères en rouge ont toujours la même longueur et sont toujours positionnés à la même place ?

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    merci de votre réponse

    MySQL: 5.0.45 et les caractères en rouge ont toujours la même longueur et sont toujours positionnés à la même place.

  4. #4
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Je ne connais pas MySQL, mais il doit exister une fonction qui découpe une chaine de caractère.

    Sous Access c'est mid()

    Il existe aussi (je ne sais plus dans quel SGBD), substr() ou substring()...

    Ces fonctions permettent d'extraire une partie d'une chaine en précisant la position de départ et la longueur à extraire.

    Ex :
    LeChamp = http://XXX.adectab.XXXX.jpg
    select substr(LeChamp, 1, 7) + substr(LeChamp, 12)

    va te donner la partie de la chaine qui commence au caractère 1 sur une longueur de 7 concaténée avec la partie de la chaine qui commence au caractère 12

  5. #5
    Membre expérimenté
    Avatar de Senji
    Inscrit en
    Juillet 2008
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 144
    Points : 1 391
    Points
    1 391
    Par défaut
    salut,

    sous Mysql la fonction est SUBSTRING()

    bye

  6. #6
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par willy2 Voir le message

    http://XXX.adectab.XXXX.jpg avec XXXX variable

    Je vaudrais supprimer les 4 caractères en rouge pour tomber sur ceci

    http://adectab.XXXX.jpg
    Euh... il y a 3 X et pas 4 !

    Donc vous voulez garder 'http://' + la fin de la chaîne sauf les 3 caractères qui suivent 'http://' ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT CONCAT('http://', RIGHT(LaColonne, LENGTH(LaColonne) - 10)) AS urlSimple
    FROM ...

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci Cinephil pour la requête.

    Pour plus détails:
    phpMyAdmin - 2.10.2
    Version du client MySQL: 5.0.45
    ma base de donnée est "meta"
    la table est "link"
    champ est "linkpictures"

    SELECT CONCAT('http://', RIGHT(linkpictures, LENGTH(linkpictures - 10)) AS urlSimple
    FROM link


    J'ai lancé cette requête sous Phpmyadmin et il me retourne une erreur:

    #1064 - Erreur de syntaxe près de 'AS urlSimple FROM link
    LIMIT 0, 30' à la ligne 1


    Euh... il y a 3 X et pas 4 !
    Il ya bien 4 caractères à supprimer: http://XXX.adectab.XXXX.jpg (caractères en rouge) 3 XXX et 1 .

    Ya t-il une possibilité de modifier que les champs incorrect en testant l'urL, car il y a déjà certains champs qui sont sous forme http://adectab.XXXX.jpg.

  8. #8
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Au temps pour moi, erreur de parenthèse après le LENGTH.
    http://XXX. = 11 caractères donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT CONCAT('http://', RIGHT(linkpictures, LENGTH(linkpictures) - 11) AS urlSimple
    FROM link
    Par contre, la dernière phrase demande des précisions complémentaires :
    Ya t-il une possibilité de modifier que les champs incorrect en testant l'urL, car il y a déjà certains champs qui sont sous forme http://adectab.XXXX.jpg.
    Est-ce que 'adectab' est une constante ou juste un exemple qui peut être tout autre chose ?

    Si c'est une constante, on peut carrément faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT CASE
      WHEN LEFT(linkpictures, 14) <> 'http://adectab'
        THEN CONCAT('http://adectab', RIGHT(linkpictures, LENGTH(linkpictures) - 18) 
      ELSE linkpictures
    END AS urlSimple
    FROM link
    Voilà le principe, y'a plus qu'à adapter.

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    merci de votre aide

    Est-ce que 'adectab' est une constante ou juste un exemple qui peut être tout autre chose ?
    malheureusement ce n'est pas une constante

    les liens que j'ai exactement sont sous forme suivantes:

    http://738.static.dailymotion.com/dy...0/13100738.jpg
    http://976.static.dailymotion.com/dy...0/11748976.jpg

    je vaudrais avoir:

    http://static.dailymotion.com/dyn/pr...0/11748976.jpg

    Peut on faire une requête en jouant sur les 3 caractères à partir de la 8ème position en partant de gauche et la 7éme position à partir de droite. (en comparant 976 dans le dernier cas). s'ils sont égaux alors supprimer les 4 caractères pour tomber sur le lien voulu à savoir:

    http://static.dailymotion.com/dyn/pr...0/11748976.jpg

  10. #10
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Si 'static' est une constante, le principe est le même.

Discussions similaires

  1. [AC-2000] Supprimer caractères dans une chaine de caractères
    Par 30avril1989 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 05/05/2010, 11h08
  2. supprimer certains caractères dans une chaine
    Par rene10 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 31/12/2009, 12h26
  3. supprimer un caractère dans une chaine
    Par agilec dans le forum Débuter
    Réponses: 2
    Dernier message: 29/09/2009, 21h13
  4. Supprimer des caractères dans une chaine
    Par bahamut100 dans le forum Langage
    Réponses: 3
    Dernier message: 12/02/2009, 11h25
  5. [Tableaux] Supprimer des caractères dans une chaine
    Par ddubois dans le forum Langage
    Réponses: 10
    Dernier message: 16/12/2006, 14h53

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