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

PostgreSQL Discussion :

Un mot pour un autre


Sujet :

PostgreSQL

  1. #1
    Membre régulier Avatar de Nerva
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Points : 94
    Points
    94
    Par défaut Un mot pour un autre
    Bonjour.

    Je voudrais connaître la structure de la requête qui me permettrait de changer, par exemple, tous les mots monsieur en mr dans un champ.

    Merci.

  2. #2
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 734
    Points
    1 734
    Par défaut
    Tout simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update ta_table set ton_champ = 'mr' where ton_champ = 'monsieur';
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 577
    Points
    52 577
    Billets dans le blog
    5
    Par défaut
    Non, il demande à l'intérieure de la colonne et non la colonne toute entière (il n'y a pas de "champs" dans les BD)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE ta_table 
    SET colonne = REPLACE( colonne, 'monsieur', 'mr')
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre régulier Avatar de Nerva
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Points : 94
    Points
    94
    Par défaut
    Je te remercie mais ça ne fonctionne pas. Je suis vraiment débutant en PostgreSQL (serveur Free, ce type de base de données obligatoire pour la version 2 de DotClear) et voilà ce que j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update dc_post set post_content = '' where post_content = '<div class="style_01">Cliquez pour afficher les images</div>'
    Donc, remplacer <div class="style_01">Cliquez pour afficher les images</div> par rien.

    J'ai simplement copier cette requête dans la boîte SQL et cliqué sur Lancer. Peut-être faut-il paramétrer autre chose ?

  5. #5
    Membre régulier Avatar de Nerva
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Points : 94
    Points
    94
    Par défaut
    Ok SqlPro, ça marche... Mais dans mon exemple, post_content, ça s'appelle comment si ce n'est pas un champ ?

  6. #6
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 734
    Points
    1 734
    Par défaut
    Citation Envoyé par Nerva Voir le message
    Ok SqlPro, ça marche... Mais dans mon exemple, post_content, ça s'appelle comment si ce n'est pas un champ ?
    Une colonne
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  7. #7
    Membre régulier Avatar de Nerva
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Points : 94
    Points
    94
    Par défaut
    Petit soucis : la requête ne fonctionne pas dans un champ de type smallint.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE dc_post SET post_selected = REPLACE( post_selected, '1', '0')
    J'ai ce message qui s'affiche :

    Erreur SQL :

    ERROR: function replace(smallint, unknown, unknown) does not exist
    LINE 1: UPDATE dc_post SET post_selected = REPLACE( post_selected, '...
    ^
    HINT: No function matches the given name and argument types. You might need to add explicit type casts.

    Dans l'instruction :
    UPDATE dc_post SET post_selected = REPLACE( post_selected, '1', '0')

  8. #8
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 476
    Points : 831
    Points
    831
    Par défaut
    bonjour
    c'est normal la fonction replace est une fonction qui s'applique aux chaines de caracteres et non aux types numeriques comme smallint donc si on veut changer
    les 1 par des 0 dans un nombre on peut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE dc_post SET post_selected = REPLACE( post_selected::text, '1', '0')::smallint
    l'operateur :: permet de changer le type des données

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/04/2009, 10h35
  2. Fonction pour remplacer des motifs de mots par d'autre
    Par keketteboy dans le forum VBA Word
    Réponses: 2
    Dernier message: 22/08/2008, 15h16
  3. Parser une page pour remplaçer des mots par d'autres
    Par HALOMOTO dans le forum Langage
    Réponses: 13
    Dernier message: 13/07/2006, 22h58
  4. UPDATE en ADO pour une autre base access
    Par EE dans le forum Requêtes et SQL.
    Réponses: 13
    Dernier message: 19/01/2006, 13h43
  5. Prendre des variable d'un formulaire pour un autre
    Par soltani.slim dans le forum Access
    Réponses: 4
    Dernier message: 22/06/2005, 17h06

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