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

Requêtes MySQL Discussion :

Requête SQL complexe Additionner nombre dans un champ texte


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 57
    Points : 43
    Points
    43
    Par défaut Requête SQL complexe Additionner nombre dans un champ texte
    Bonjour,

    J'aimerais modifier toutes les valeurs numériques dans un champ texte.
    Le champ est un texte contenant de temps en temps des <b>#00564</b>. Pour ces types de numéro #00564, j'aimerais qu'il soit tous additionné de 10 000?

    Exemple :
    "Il était une fois le numéro #00564 bla bla."

    Il faudrait que tous les nombres de type #00564 soit additionnés de 10 000.
    #00564 deviendrait #10564.

    Ce champ se nomme "Description" et est présent dans la table "voiture".


    Cordialement,

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Exemple :
    "Il était une fois le numéro #00564 bla bla."
    Si tous ces libellés ne contiennent qu'une seule fois la structure "#00564" à modifier, tu dois jouer avec les fonctions de chaîne de caractères.

    Il faut localiser la position (POSITION) du caractère # puis convertir (CAST) le morceau composé des 5 caractères suivant cette position en UNSIGNED, lui ajouter 10000, reconvertir en chaîne de caractère et remplacer (REPLACE) la chaîne existante.

    Essaie tout seul en commençant hors de la table avec un exemple.

    Je te donne le début :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT POSITION('#' IN 'Il était une fois le numéro #00564 bla bla.')
    => Donne la position du #

    Puis tu complètes progressivement la requête en vérifiant le résultat à chaque fois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SUBSTRING('Il était une fois le numéro #00564 bla bla.' FROM POSITION('#' IN 'Il était une fois le numéro #00564 bla bla.') + 1 FOR 5)
    => Devrait donner la chaîne '00564'

    Bon courage !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. [WD-2007] Formulaire : Format de Nombre dans un champ texte
    Par Escandil dans le forum Word
    Réponses: 4
    Dernier message: 06/11/2012, 13h27
  2. Condition dans requête SQL selon la valeur d'un champs
    Par Arakasix dans le forum Langage SQL
    Réponses: 2
    Dernier message: 21/09/2011, 12h02
  3. [AC-2007] Sélection stricte des nombres dans un champ texte
    Par Razorback dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 17/08/2009, 09h32
  4. [SQL] Problème d'affichage dans un champ text
    Par lefreeman42 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/07/2007, 09h54
  5. Récupérer un nombre dans un champs texte
    Par mandou36 dans le forum Access
    Réponses: 18
    Dernier message: 05/09/2006, 19h11

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