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 :

REPLACE texte dans une chaine


Sujet :

Langage SQL

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    315
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 315
    Points : 243
    Points
    243
    Par défaut REPLACE texte dans une chaine
    Bonjour,
    Je sèche sur une requête SQL.
    Dans la colonne fulltext, je veux remplacer la sous-chaine suivante
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <tr>
    <td style="width: 12%;"> </td>
    <td style="width: 88%;">{field 52}</td>
    </tr>
    par
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <tr>
    <td style="width: 12%;"> </td>
    <td style="width: 88%;">{field 52}</td>
    </tr>
    <tr>
    <td style="width: 12%;"> </td>
    <td style="width: 88%;">{field 63}</td>
    </tr>

    Cette requête ne génère pas d'erreur et ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    UPDATE `elomb_content` 
    SET `fulltext` = REPLACE(`fulltext`, 
    '<tr>\r\n<td style=\"width: 12%;\"> </td>\r\n<td style=\"width: 88%;\">{field 52}</td>\r\n</tr>', 
    '<tr><td style=\"width: 12%;\"> </td><td style=\"width: 88%;\">{field 52}</td></tr><tr><td style=\"width: 12%;\"> </td><td style=\"width: 88%;\">{field 63}</td></tr>') 
    WHERE `fulltext`LIKE '%<tr><td style=\"width: 12%;\"> </td><td style=\"width: 88%;\">{field 52}</td></tr>%'
    AND catid = 21
    Où est-ce que je merdouille ?
    Alain

    PS: cette sélection liste bien les lignes concernées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT * FROM `elomb_content` WHERE `fulltext`LIKE 
    '%
    <tr>\r\n<td style=\"width: 12%;\"> </td>\r\n<td style=\"width: 88%;\">{field 52}</td>\r\n</tr>
    %'
    AND catid = 21

  2. #2
    Membre confirmé Avatar de licardentaistor
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2021
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juillet 2021
    Messages : 345
    Points : 495
    Points
    495
    Par défaut
    moi je ferais un truc comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE elomb_content SET fulltext = CONCAT(fulltext , '<tr>
    <td style="width: 12%;"> </td>
    <td style="width: 88%;">{field 63}</td>
    </tr>')
    WHERE fulltext LIKE '%{field 52}%'

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    315
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 315
    Points : 243
    Points
    243
    Par défaut
    Citation Envoyé par licardentaistor Voir le message
    moi je ferais un truc comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE elomb_content SET fulltext = CONCAT(fulltext , '<tr>
    <td style="width: 12%;"> </td>
    <td style="width: 88%;">{field 63}</td>
    </tr>')
    WHERE fulltext LIKE '%{field 52}%'
    Bonjour licardentaistor,
    Cette requête génère aussi une erreur de syntaxe et je n'obtiens pas le remplacement du bloc par un autre, mais l'ajout d'une chaine si le {champ 52} existe.
    Je retiens quand même la simplification du WHERE.

  4. #4
    Membre confirmé Avatar de licardentaistor
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2021
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juillet 2021
    Messages : 345
    Points : 495
    Points
    495
    Par défaut
    ha! c'est pas clair dans ton exemple, ça donnait l'impression que tu voulais rajouter ... bref:

    je veux remplacer la sous-chaine suivante

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <tr>
    <td style="width: 12%;"> </td>
    <td style="width: 88%;">{field 52}</td>
    </tr>

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <tr>
    <td style="width: 12%;"> </td>
    <td style="width: 88%;">{field 52}</td>
    </tr>
    <tr>
    <td style="width: 12%;"> </td>
    <td style="width: 88%;">{field 63}</td>
    </tr>

    Nom : Capture.PNG
Affichages : 173
Taille : 40,0 Ko

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    315
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 315
    Points : 243
    Points
    243
    Par défaut
    Bonjour licardentaistor,
    Tu as raison, je ne suis pas clair dans ma demande et toi, tu réponds patiemment et sans t'énerver
    Le code dans lequel je souhaite insérer la sous chaine comporte plusieurs autres champs. C'est la raison pour laquelle je remplace
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <tr>
    <td style="width: 12%;"> </td>
    <td style="width: 88%;">{field 52}</td>
    </tr>
    par
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <tr>
    <td style="width: 12%;"> </td>
    <td style="width: 88%;">{field 52}</td>
    </tr>
    <tr>
    <td style="width: 12%;"> </td>
    <td style="width: 88%;">{field 63}</td>
    </tr>
    ainsi le nouveau champ est inséré pile poil au bon endroit.
    Ta prochaine proposition sera la bonne...

  6. #6
    Membre confirmé Avatar de licardentaistor
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2021
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juillet 2021
    Messages : 345
    Points : 495
    Points
    495
    Par défaut
    dans mon précédent exemple je remplace le {field 52} par {field 63} c'est pas ce que tu veux?

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    315
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 315
    Points : 243
    Points
    243
    Par défaut
    Citation Envoyé par licardentaistor Voir le message
    dans mon précédent exemple je remplace le {field 52} par {field 63} c'est pas ce que tu veux?
    Non, comme expliqué dans mon dernier post, je remplace la totalité de la chaine contenant {field 52} par la chaine contenant {field 52} ET {field 63}

  8. #8
    Membre confirmé Avatar de licardentaistor
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2021
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juillet 2021
    Messages : 345
    Points : 495
    Points
    495
    Par défaut
    envoi un exemple complet de ta table avec cette colonne, normalement ton 1er replace doit fonctionner.

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

Discussions similaires

  1. COPIE D'un fichier text dans une chaine de connexion
    Par fatimaroza77 dans le forum Delphi
    Réponses: 1
    Dernier message: 25/12/2015, 19h18
  2. [WD12] Lenteur affectation de texte dans une chaine
    Par zouzoukha dans le forum WinDev
    Réponses: 2
    Dernier message: 21/04/2012, 21h26
  3. Rechercher du texte dans une chaine
    Par Zanku dans le forum Windows
    Réponses: 2
    Dernier message: 12/01/2009, 17h13
  4. Replace - remplacement dans une chaine
    Par petiteso dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/06/2007, 11h14
  5. Recherche de texte dans une chaine de caractères
    Par julien20vt dans le forum Oracle
    Réponses: 7
    Dernier message: 19/12/2006, 10h02

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