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 :

Remplissage conditionnel de champs


Sujet :

MySQL

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 366
    Points : 97
    Points
    97
    Par défaut Remplissage conditionnel de champs
    Bonjour.

    Dans une base de données, j'ai un champ "fichier" qui contient des entrées de ce genre :

    toto_01
    toto_02
    ...
    toto_10

    lulu_01
    lulu_02
    ...
    lulu_10


    Etc...

    J'ai un champ "nom" dont toutes les entrées sont vides pour le moment.

    Je cherche une requête qui me permettrait de remplir automatiquement ce champ en fonction de ce que contient en partie le champ "fichier". Par exemple, en faisant touver "toto" dans la requête, les 10 champs vides (de 01 à 10) de "nom" contiendront le mot "Toto".

    Merci.

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 739
    Points
    11 739
    Par défaut
    ça dépend de la règle que tu veux mettre exactement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    -- nom par nom
    UPDATE ta_table SET nom = 'Toto' WHERE fichier LIKE 'toto%' ;
     
    -- quatre premiers caractères
    UPDATE ta_table SET nom = SUBSTR(fichier FROM 1 FOR 4) ;
     
    -- repérage sur l'underscore
    UPDATE ta_table SET nom = substr(fichier from 1 for locate('_', fichier) - 1) ;

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 366
    Points : 97
    Points
    97
    Par défaut
    Avec la règle "Nom par nom", ça me donne ce que je recherchais. Merci...

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 366
    Points : 97
    Points
    97
    Par défaut
    Je rouvre le sujet pour une autre question du même genre.

    Dans le champ "chemin", j'ai des données qui se présentent comme ceci :

    ./telechargement/annee/mois/toto_01.jpg
    ./telechargement/annee/mois/toto_02.jpg
    ...
    ./telechargement/annee/mois/toto_10.jpg


    Etc...

    Quelle requête utiliser pour les transformer comme ceci :

    ./telechargement/toto_01.jpg
    ./telechargement/toto_02.jpg
    ...
    ./telechargement/toto_10.jpg


    C'est-à-dire, supprimer une chaîne de caractères redondante...

    Merci.

  5. #5
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 739
    Points
    11 739
    Par défaut
    Fonction REPLACE...

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 366
    Points : 97
    Points
    97
    Par défaut
    J'ai essayé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    REPLACE test SET chemin = REPLACE(chemin, '/telechargement/annee/mois/', '/telechargement/');
    Et ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    REPLACE test SET chemin = REPLACE(chemin, 'annee/mois/', '');
    Dans les deux cas, ça crée un nouvel enregistrement avec des valeurs NULL et à 0.

  7. #7
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 739
    Points
    11 739
    Par défaut
    Attention, là il s'agit de la commande REPLACE.

    Dans ton cas, c'est la fonction REPLACE qu'il faut utiliser (dans un UPDATE classique)
    cf http://dev.mysql.com/doc/refman/5.0/...functions.html

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 366
    Points : 97
    Points
    97
    Par défaut
    Ok, avec ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE test SET chemin = REPLACE(chemin, 'annee/mois/', '');
    Ca marche... Mais je pensais à une requête plus complexe, je ne savais pas que celle-ci, standard pour le remplacement, fonctionnait avec des portions de caractères...

    Merci.

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

Discussions similaires

  1. [AC-2003] Remplissage conditionnel d'un champ dans un formulairee
    Par castours dans le forum IHM
    Réponses: 1
    Dernier message: 30/01/2011, 20h46
  2. Remplissage automatique de champs
    Par Gali dans le forum Access
    Réponses: 3
    Dernier message: 24/05/2006, 00h07
  3. Réponses: 4
    Dernier message: 22/05/2006, 16h41
  4. [MySQL] Remplissage automatique des champs d'un formulaire
    Par dodji05 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 21/04/2006, 17h11
  5. [VBA] remplissage d'un champs selon une recherche
    Par Virgile59 dans le forum Access
    Réponses: 7
    Dernier message: 04/11/2005, 10h52

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