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

JDBC Java Discussion :

requete sql avec le like


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Points : 60
    Points
    60
    Par défaut requete sql avec le like
    Bonjour tout le monde,

    J'ai un probleme dans ma requete SQL avec le like voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PreparedStatement requete=con.prepareStatement("SELECT classe from famille WHERE Nom like ?%");
    requete.setString(1,nom);
    Merci de votre aide

    Nb:"nom" est fournit en parametre

  2. #2
    Membre confirmé Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Points : 580
    Points
    580
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT classe from famille WHERE Nom like '" + nom + "%' "
    ou nom est une variable

    En fait c'est normal que t'as requete plante étant donné que tu ne donne que
    ?% apres un like il faut ta valeur entouré de simples quotes.
    Le % (dans les simples quote) sert à étendre la recherche.

    Par contre attention à ta variable nom, si elle contient des simples quotes, ca fout la merde !

  3. #3
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Pour eviter les problemes de quotes dans la variable nom, il faut effectivement utilise les PreparStatement et pas faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT classe from famille WHERE Nom like '" + nom + "%' "
    D'apres mes souvenirs, il faut mettre le % dans la variable nom et pas dans la requete. Ca donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    String nom = "MyName";
    PreparedStatement requete=con.prepareStatement("SELECT classe from famille WHERE Nom like ?");
    nom+= "%";
    requete.setString(1,nom);

Discussions similaires

  1. [MySQL] requete sql avec like en utilisant une variable
    Par amesnaou dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 27/05/2009, 10h22
  2. AIDE SUR REQUETE SQL AVEC FONCTION LIKE
    Par everblue dans le forum Langage SQL
    Réponses: 0
    Dernier message: 16/03/2008, 18h56
  3. requete sql avec like ?
    Par Melvine dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/11/2006, 15h49
  4. Attribuer une requete sql avec 'like' en source de formulaire
    Par en_gel_ho dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 04/10/2006, 13h41
  5. [JDBC] retour de requete sql avec valeur NULL
    Par maxxou dans le forum JDBC
    Réponses: 3
    Dernier message: 13/09/2004, 14h40

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