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 :

[MySQL] extraire les chiffres d'une chaine


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 61
    Points : 43
    Points
    43
    Par défaut [MySQL] extraire les chiffres d'une chaine
    Bonjour à tous,

    j'ai dans ma table un champ qui contient des valeurs du type :
    toto45, toto9, houhou1, tata115, tata6, ...
    Je voudrais dans ma requete sql pouvoir fair un max sur ce champ. et qu'il me renvoie la valeur chiffrée la plus élevée. Le problème est que toto9 est pour lui supérieur à toto45.

    Il faudrait donc que j'arrive à extraire les chiffres et que je fasse mon MAX sur ces valeurs. Cela est-il possible ?

    Ma requette est du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT MAX(id) 
    FROM `annecy_tâches`
    GROUP BY niveau
    niveau me permet de différencier les différente valeur de mon id (toto, houhou, tata) car chaque valeur correspond à un niveau.

    Merci d'avance pour votre aide.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 114
    Points : 102
    Points
    102
    Par défaut
    en fonction de ton SGDB les possibilités qui s'offrent a toi ne seront pas les meme.
    Donc pour commencer quel est ton SGBD ?

  3. #3
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 61
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par telynor
    en fonction de ton SGDB les possibilités qui s'offrent a toi ne seront pas les meme.
    Donc pour commencer quel est ton SGBD ?
    MySql

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 102
    Points : 28 387
    Points
    28 387
    Par défaut
    Ne connaissant pas le SGBD avec lequel tu travailles, je te propose une solution ANSI...
    Au vu de tes exemples, je suppose que ton identifiant est de la forme :
    une série de caractères alphabétiques de longueur inconnue, suivie d'une série de chiffres.
    Pour extraire les chiffres, j'utiliserais la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    CREATE TABLE
        chiffres
        (   chiffre CHAR(1)
        )
    ;
    INSERT INTO chiffres(chiffre)
    VALUES  ('0')
    ;
    ...
    INSERT INTO chiffres(chiffre)
    VALUES  ('9')
    ;
     
    SELECT  macolonne
        ,   CAST(SUBSTRING( TRIM(macolonne) 
                            FROM    MIN(POSITION(n.chiffre IN t.macolonne)) 
                            ) 
                AS INTEGER) AS nombre
    FROM
            matable AS t
        ,   chiffres AS n
    WHERE
            POSITION(n.chiffre IN t.macolonne)  > 0
    GROUP BY
            t.macolonne
    ;

  5. #5
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 61
    Points : 43
    Points
    43
    Par défaut
    Merci pour ta réponse al1_24, je vais essayer, mais j'ai peur qu'elle ne marche pas car il me semble que ma version de MySQL n'accepte pas les sous requettes.

    Je vais tester et je vous tient au courrant.

Discussions similaires

  1. extraire les chiffres d'une chaine en bash
    Par zerros dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 13/12/2011, 21h40
  2. Réponses: 5
    Dernier message: 22/04/2009, 14h38
  3. recuperer les chiffres dans une chaine
    Par grospatapouf dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 22/01/2009, 00h08
  4. [Tableaux] Extraire les chiffres dans une chaîne
    Par Digiduck dans le forum Langage
    Réponses: 8
    Dernier message: 16/08/2006, 14h33
  5. Extraire les mots d'une chaine
    Par hsouna dans le forum C++
    Réponses: 2
    Dernier message: 26/06/2006, 17h12

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