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

PHP & Base de données Discussion :

Récupérer une chaine de caractère dans un colonne


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 7
    Par défaut Récupérer une chaine de caractère dans un colonne
    Bonjour,

    Je m'adresse à vous pour savoir s'il était possible de récupérer une partie d'une chaine de caractère d'un champ en SQL ?


    Je m'explique :

    J'ai un champ path que je récupère où il y a une URL... Or ce que j'ai besoin c'est que d'un ID qui se trouve en fin de ce path.

    Est-il possible de faire cela en SQL & Expressions Régulières ou suis-je condamné à gérer cela ligne par ligne en PHP, sachant que j'ai environ 30.000 rows ?


    Merci d'avance pour vos réponses

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 7
    Par défaut
    J'ai vu qu'il était peut-être possible de gérer cela avec TRIM() mais j'y comprends un peu rien...

    HELP

  3. #3
    Membre expérimenté Avatar de Alshten
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 157
    Par défaut
    Citation Envoyé par djdamage Voir le message
    J'ai vu qu'il était peut-être possible de gérer cela avec TRIM() mais j'y comprends un peu rien...

    HELP
    TRIM ne supprime que les espaces. Si tu connais la longueur de ton URL à supprimer, tu peux te débrouiller avec SUBSTRING.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 7
    Par défaut
    Citation Envoyé par Alshten Voir le message
    TRIM ne supprime que les espaces. Si tu connais la longueur de ton URL à supprimer, tu peux te débrouiller avec SUBSTRING.
    Le souci c'est que les URL sont toutes différentes (référencement oblige) donc avec un nombre de caractère totalement différent entre tous les produits...

  5. #5
    Membre éclairé
    Avatar de titoon
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Par défaut
    Si toutes les URLs respectent un même format (pour l'exemple, "url/page.php?id=X"), tu peux t'en sortir avec les fonctions SUBSTR et LOCATE (le "3" dans le code correspond à la longueur de la chaine "id=")
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT SUBSTRING(mon_champ, LOCATE( "id=", mon_champ ) + 3)
    FROM `ma_table`

    edit: woops, pas vu le message au dessus... ça risque de pas marcher

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 7
    Par défaut
    Citation Envoyé par titoon Voir le message
    Si toutes les URLs respectent un même format (pour l'exemple, "url/page.php?id=X"), tu peux t'en sortir avec les fonctions SUBSTR et LOCATE (le "3" dans le code correspond à la longueur de la chaine "id=")
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT SUBSTRING(mon_champ, LOCATE( "id=", mon_champ ) + 3)
    FROM `ma_table`

    edit: woops, pas vu le message au dessus... ça risque de pas marcher
    Grâce à toi j'ai réussi !

    Voici mon code, ça pourrait servir à quelqu'un un jour (en l'adaptant bien sur !)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT visitorid as user_id, SUBSTRING(page.path, LOCATE( "_p", page.path ) + 2) as productid, rating
    	FROM [......]
    		WHERE 	visit.visitid = action.visitid
    			AND page.path RLIKE '.*_p[0-9]+$'
    				ORDER BY visit.visitorid

Discussions similaires

  1. [AC-2010] remplacer une chaine de caractère dans une colonne
    Par ambact dans le forum VBA Access
    Réponses: 9
    Dernier message: 09/08/2012, 21h43
  2. Réponses: 15
    Dernier message: 04/10/2011, 14h58
  3. Récupérer une chaine de caractères dans un fichier texte
    Par neutrall dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 31/05/2011, 00h37
  4. Réponses: 2
    Dernier message: 31/01/2008, 17h58
  5. Récupérer une chaine de caractère dans une page
    Par BrunS dans le forum Langage
    Réponses: 3
    Dernier message: 15/11/2005, 14h28

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