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

SQLite Discussion :

Modification des données d'un champ dune base SQLite


Sujet :

SQLite

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur en aéronautique retraité
    Inscrit en
    Février 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur en aéronautique retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2015
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Modification des données d'un champ dune base SQLite
    Bonjour

    J’ai un besoin très ponctuel qui m’oblige à m’intéresser à SQLite alors que je ne suis pas du tout familier de ce domaine.
    Ma bibliothèque de photos (iPhoto sur Mac) est une base SQLite. Je souhaite remplacer le chemin d’accès de certaines photos ce qui consiste à modifier le contenu d’un champ pour certains enregistrements.
    Dit de façon la plus simple possible: les données dans le champ nommé ”filepath” sont de la forme ”A/B/x”; pour les enregistrements où A/B/ a une certaine valeur, je veux raccourcir les données à ”x”. Ce x lui est variable dans les enregistrements remplissant cette condition.
    Je pensais que la commande SQL UPDATE "nom de table" SET "colonne 1" = [nouvelle valeur] WHERE "condition"
    pouvait marcher mais ce n’est pas le cas puisque elle permet de forcer une valeur identique dans le champ considéré des enregistrements répondant à la condition WHERE, alors que moi je veux remplacer une chaine de caractère (A/B/x) pas une autre (x).

    Note: J’ai essayé en exportant puis en important la base à l’aide d’un fichier cvs directement modifié mais les résultats sont aléatoires.

    Y a t-il une commande SQL ou une procédure permettant celà. Quelqu’un pourrait-il m’indiquer la marche à suivre?

    Merci d'avance

  2. #2
    Membre éprouvé
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 431
    Points : 1 127
    Points
    1 127
    Par défaut
    Bonjour,

    La commande suivante devrait pouvoir te donner quelque chose (si j'ai tout bien compris)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE "nom de table" SET "colonne 1" = substr(colonne 1, length('A/B')) WHERE "condition"
    Plus généralement rien ne s'oppose à ce que tu utilises une fonction de ta colonne pour la mettre à jour.

    Cordialement

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur en aéronautique retraité
    Inscrit en
    Février 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur en aéronautique retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2015
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonsoir Acaumes

    Je viens d'essayer la commande que tu as suggéré et...ça marche à merveille. Un tout petit détail: si je mets dans length le texte que je veux supprimer, je garde un caractère de trop; le / en l'occurence. A part ce détail que j'ai facilement réglé, tout semble fonctionner.

    Encore merci pour ton aide et ta réponse ultra rapide!

  4. #4
    Membre éprouvé
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 431
    Points : 1 127
    Points
    1 127
    Par défaut
    Bonjour,

    Oui, je l'ai écrit vite fait à plus ou moins 1 près
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE "nom de table" SET "colonne 1" = substr(colonne 1, length('A/B') + 1) WHERE "condition"
    aurait probablement été meilleur

    EDIT : Le caractère de début de la sous chaîne commence juste après la chaîne recherchée

    Cordialement

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

Discussions similaires

  1. [JTable] Interdire la modification des données ?
    Par Cyborg289 dans le forum Composants
    Réponses: 7
    Dernier message: 25/02/2013, 10h40
  2. Modification des données saisies en base de données
    Par leara500 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/11/2012, 17h09
  3. Réponses: 21
    Dernier message: 21/02/2008, 15h50
  4. [MySQL] Modification des données d'une base par les membres
    Par pod1978 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 22/03/2006, 17h25
  5. Sélection des données d'un champ avec le focus de la souris
    Par Nerva dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 13/12/2005, 15h23

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