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

Java EE Discussion :

Utilisation du like


Sujet :

Java EE

  1. #1
    Membre actif
    Inscrit en
    Juin 2005
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 303
    Points : 201
    Points
    201
    Par défaut Utilisation du like
    Bonjour,

    j'ai une requete de type EJB-QL du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select ... from ... where ... like '%?1%'
    Le résultat est toujours null. Ce qui explique que le '%?1%' est considéré comme une chaine. En gros, il ne prend pas en compte le parametre de la fonction et recherche la chaine '%?1%'.

    Y a t'il une autre méthode SVP

    Merci

  2. #2
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 90
    Points : 53
    Points
    53
    Par défaut
    essaie ça ' ""+%?1% '

  3. #3
    Membre habitué
    Profil pro
    Analyste programmeur
    Inscrit en
    Novembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Novembre 2006
    Messages : 197
    Points : 167
    Points
    167
    Par défaut
    que designe le caractere "?"

    s'il designe un caractere qlq utilise"_"

  4. #4
    Membre actif
    Inscrit en
    Juin 2005
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 303
    Points : 201
    Points
    201
    Par défaut
    finalement, j'ai trouvé une manip de fortune qui marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LOCATE(?1, lechampconcerné)>0
    à la place du lechampconcerné like '%?1%'

    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CONCAT('%',CONCAT(?1,'%'))
    à la place du '%?1%'

    voila pour les 2 solutions possibles.

  5. #5
    Membre habitué
    Profil pro
    Analyste programmeur
    Inscrit en
    Novembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Novembre 2006
    Messages : 197
    Points : 167
    Points
    167
    Par défaut
    ahhhhhh,

    je n'ai pas compris que ?1 veut dire un parametre

    le plus simple et le plus efficace c'est d'utiliser :

    select o from tableXX o where o.nom LIKE :tonparametre

  6. #6
    Membre confirmé Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Points : 554
    Points
    554
    Par défaut
    Citation Envoyé par mbouzouita
    select o from tableXX o where o.nom LIKE :tonparametre
    Ce n'est pas ça qu'il voulait faire...

    Mais peu importe, il a trouvé la réponse...

  7. #7
    Membre habitué
    Profil pro
    Analyste programmeur
    Inscrit en
    Novembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Novembre 2006
    Messages : 197
    Points : 167
    Points
    167
    Par défaut
    si tu veux utiliser % tu peut faire ça:

    MAT="%"+MAT+"%";

    createQuery("........ where o.matricule LIKE :MAT").setParameter("MAT",MAT).getResultList();


    je pense que ça est plus facile

  8. #8
    Membre actif
    Inscrit en
    Juin 2005
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 303
    Points : 201
    Points
    201
    Par défaut
    Citation Envoyé par mbouzouita
    si tu veux utiliser % tu peut faire ça:

    MAT="%"+MAT+"%";

    createQuery("........ where o.matricule LIKE :MAT").setParameter("MAT",MAT).getResultList();


    je pense que ça est plus facile
    j'utilise des EJB CMP. ta méthode est correcte et est possible qu'avec les BMP.
    Mais merci qd meme. Bien essayé

    En fait, je ne met pas résolu pour avoir le plus de réponses possibles. Peut-etre qu'il y a d'autres méthodes

Discussions similaires

  1. Utilisation de "like" en jointure
    Par joker34 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/06/2007, 12h45
  2. Utilisation du like (comme)
    Par Kihmé Xs dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 06/06/2007, 11h28
  3. [SQL] Utilisations de like ?
    Par innova dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 01/01/2007, 23h16
  4. [DB2] Utilisation du like
    Par rémi_tounul dans le forum DB2
    Réponses: 3
    Dernier message: 03/06/2005, 17h55
  5. utilisation de "LIKE" avec un type datetime dans r
    Par ericmart dans le forum Langage SQL
    Réponses: 8
    Dernier message: 06/11/2003, 14h58

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