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 éclairé
    Inscrit en
    Juin 2005
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 303
    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 confirmé
    Inscrit en
    Avril 2007
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 90
    Par défaut
    essaie ça ' ""+%?1% '

  3. #3
    Membre confirmé
    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
    Par défaut
    que designe le caractere "?"

    s'il designe un caractere qlq utilise"_"

  4. #4
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 303
    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 confirmé
    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
    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 chevronné 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
    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 confirmé
    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
    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 éclairé
    Inscrit en
    Juin 2005
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 303
    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