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 :

Utilisation SUBSTR pour recuperer un champ a partir d'un caractère


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2016
    Messages : 4
    Par défaut Utilisation SUBSTR pour recuperer un champ a partir d'un caractère
    Bonjour A tous,

    ma question est assez simple, puis-je utiliser la fonction substr pour récupérer une partie de ma colonne a partir non d'un nombre (6eme) mais d'un caractère défini (/)

    je m'explique :
    le contenu de ma colonne (variables) est le suivant :
    cas 1
    toto/toto/toto/text.html
    cas 2
    toto/toto/toto/lasttoto/text.html

    donc est-ce que je peux utiliser cette fonction substr pour dire select dans le champ (filename) a partir du dernier "/" afin de récupérer que le text.html
    a la place de la requete statique : Select id_name, age, SUBSTR(T.FileName, 6), ...

    Merci

  2. #2
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    7 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 7 054
    Par défaut
    Salut delire777.

    Si j'ai bien compris, tu veux récupérer la chaîne de caractères après ton dernier '/'.

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    --------------
    SET AUTOCOMMIT = 0
    --------------
     
    --------------
    START TRANSACTION
    --------------
     
    --------------
    set session collation_connection = "latin1_general_ci"
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE `base`
            DEFAULT CHARACTER SET `latin1`
            DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS `test`
    --------------
     
    --------------
    CREATE TABLE `test` (
      `id`          int       NOT NULL AUTO_INCREMENT PRIMARY KEY,
      `val`      varchar(255)     NULL DEFAULT NULL
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    insert into `test` (`val`) values
      ('toto/toto/toto/text.html'),
      ('toto/toto/toto/lasttoto/fichier.html')
    --------------
     
    --------------
    select val from test
    --------------
     
    +--------------------------------------+
    | val                                  |
    +--------------------------------------+
    | toto/toto/toto/text.html             |
    | toto/toto/toto/lasttoto/fichier.html |
    +--------------------------------------+
    --------------
    select reverse(substr(reverse(val), 1, locate('/', reverse(val))-1)) as résultat
    from test
    --------------
     
    +--------------+
    | résultat     |
    +--------------+
    | text.html    |
    | fichier.html |
    +--------------+
    --------------
    COMMIT
    --------------
     
    --------------
    SET AUTOCOMMIT = 1
    --------------
     
     
    Appuyez sur une touche pour continuer...
    @+

  3. #3
    Membre chevronné Avatar de Sebwar
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 172
    Par défaut
    Hello !

    Il y a encore plus simple !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select SUBSTRING_INDEX('toto/toto/toto/text.html', '/', -1)

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2016
    Messages : 4
    Par défaut HELLO !
    Merci pour vos réponses,

    mais je pense que votre réponse serait valable dans le cas ou on sait avec certitude qu'il y'a que 2 cas de figure
    ('toto/toto/toto/text.html'),
    et
    ('toto/toto/toto/lasttoto/fichier.html')

    par contre dans mon cas y a plein de cas des ('toto/toto/toto/text.html')

    c'est une colonne (nom_de_fichier) avec a chaque fois un nom de fichier différent,
    seul point commun il se terminent tous par un (/... )

    je me trompe ?
    @+

  5. #5
    Membre chevronné Avatar de Sebwar
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 172
    Par défaut
    Mon code marche pour tous les cas :p

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SUBSTRING_INDEX(colonne, '/', -1) FROM table
    ça te sortira le nom du fichier

  6. #6
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    7 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 7 054
    Par défaut
    Salut sebwar.

    Oui, en effet, ta solution est bien meilleur !
    En fait, je me suis focalisé sur le "substr()" et je n'ai pas pensé un seul instant à utiliser le "substring_index()".

    @+

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/06/2009, 16h26
  2. pb pour recuperer un champ texte dont le nom change
    Par birame dans le forum Langage
    Réponses: 3
    Dernier message: 05/06/2007, 10h57
  3. Problème awk pour récuperer des champs
    Par ab_2006 dans le forum Shell et commandes GNU
    Réponses: 15
    Dernier message: 21/09/2006, 10h36
  4. [Configuration] php pour recuperer une variable dans l'url sans utiliser $_GET
    Par mikebranque dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 22/06/2006, 21h22
  5. Réponses: 4
    Dernier message: 18/05/2006, 10h20

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