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

SQL Procédural MySQL Discussion :

traitement avancé sur un champ texte


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Par défaut traitement avancé sur un champ texte
    salut,

    je suis en mysql 4.1. dans une table j'ai un champ text qui contient du code html. par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <strong>un</strong> exemple
    j'ai un formulaire avec un champ text qui me permet de restreindre l'affichage des données en faisant ajoutant un "where" a mon select. par exmple si dans mon champ text, je tape "exemple", ma requete se transforme en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from test where monchamp LIKE "%exemple%";
    jusque la, rien de spécial, sauf que si dans mon champ de recherce je rentre "un exemple" alors ma requete ne me retourne plus rien. ce qu'il me faudrait c'est trouver un moyen pour enlever le code html pour que "<strong>un</strong> exemple" soit égale à "un exemple".

    vous savez si c'est possible de faire ca?

    merci d'avance

  2. #2
    Membre chevronné Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Par défaut
    Je ne suis pas cartain mais regarde la doc sur la fonction match :
    doc mySQL

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Par défaut
    la methode ne me convient pas... ce qui me faudrait c'est une fonction qui ressemblerait a ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from test where replace(field,"<*>","")
    en gros ca ferait un replace de tout ce qui serait dans une balise <> par du vide. est ce que ca existe ce genre de truc?

  4. #4
    Membre chevronné Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Par défaut
    Une autre solution consiterai, ors de la construction de ta clause where à remplacer les espaces par le caractère % ce qui te donnerai au final :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT * FROM test 
    WHERE monchamp LIKE "%un%exemple%";
    Par contre cette requette n'est pas assez restrictive puisque l'article indéfini un peut ne pas précéder le mot exemple....

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Par défaut
    1 c'est pas propre et 2 ca ne marchera pas a tous les coups.
    si j'ai dans ma DB : "test<a>toto"
    et que dans mon champ texte je fais une recherche sur "testtoto", ma requete ne me retournera rien alors que je veux que "test<a>toto" me soit retourné.

    je pense qu'avec des expressions regulieres ca doit etre faisable, non? personne n'en n'a jamais utilisé?

  6. #6
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 291
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select monchamp
    from test
    where monchamp regexp 'un( |<[^>]+>)+exemple'

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

Discussions similaires

  1. select sur un champs texte avec traitement du texte
    Par nicerico dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/04/2009, 07h57
  2. filtre numérique sur un champ texte
    Par debdev dans le forum Access
    Réponses: 15
    Dernier message: 26/05/2006, 17h45
  3. requete sur un champs text
    Par sam01 dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/03/2006, 13h41
  4. Probleme d'UPDATE sur un champ text
    Par Nip dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/07/2005, 11h35
  5. Boucler sur des champs texte
    Par syl2095 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/11/2004, 16h15

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