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

Requêtes MySQL Discussion :

Soucis Format String/Int pour requête LIKE


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 54
    Par défaut Soucis Format String/Int pour requête LIKE
    Bonjour tout le monde,

    Voilà je travaille sous J2EE et le framework Struts.
    Cependant j'ai un souci qui concerne une requête SQL.

    J'ai une table maTable qui contient 2 colonnes : id_departement et nom_departement.
    Comme vous l'avez deviné, id departement contient un identifiant et nom_departement le nom de ce département.
    donc id_departement = 75 alors nom_departement=Paris.

    les deux colonnes contiennent des VARCHAR (avec des int, la valeur 01 était automatiquement modifiée en 1)

    J'ai une autre table Ville qui contient entre autre une colonne code postal et nom_ville.

    Bref..

    J'ai une requête qui me permet de récupérer les codes postaux des villes qui se trouve dans le département cliqué par l'internaute.Donc si on clique sur département 30

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT* FROM maTable WHERE code_postal LIKE #value#
    value est une valeur définie auparavant de cette manière :value =code+'%'

    donc dans cet exemple #value# = 30%
    (code est un string)

    Mais j'ai un souci, si je sélectionne un département dont le code est 02, la requête ne prend pas en compte le 0 et me retourne toutes les villes commençant par 2.

    Avez vous une solution pour palier à ce problème ?

    Merci d'avance

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 061
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 061
    Par défaut
    Bonjour,

    Tu es sûr que le problème ne vient pas plutôt de la génération de ta requête ?
    Tu mets bien le code 30% entre quote (') ?
    As-tu fait afficher le code de la requête avant son envoi au serveur, pour contrôler ce qu'elle contient ?

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 54
    Par défaut
    Je pense que ma requête est bonne vu que pour les résultats au dessus de 10 la requête me renvoi les bon éléments.
    voici comment je la définie dans mon fichier ActionVille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    daoManager.startTransaction();
    			VilleDAO villeDAO = (VilleDAO) daoManager.getDao(VilleDAO.class);
     
     
    			String code = request.getParameter("code");
     
    			if(!StringUtil.isNullOrEmpty(code) )
    			{
    			//this.setVilleList(villeDAO, request);
     
    	List<VilleBean> villeList = villeDAO.getVilleListByCode(code+'%');
    	request.setAttribute("villeList", villeList);
    			}
    Et dans ma DAO :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       public List getVilleListByCode(String code);
    et la requête SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <select id="getVilleListByCode" resultMap="villesResult">
    		SELECT *
    			FROM table_ville
    			WHERE code_postal
    			LIKE #value#;
     
     
    	</select>
    Donc si je sélectionne une département dont le "code" est 10, #value# prend cette forme : 10%. Ma requête est donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT *
    			FROM table_ville
    			WHERE code_postal
    			LIKE '10%';
    On dirait que le système met les quotes automatiquement,car sinon il me renverrait une erreur sql. (la requete LIKE 10% renvoit une erreur).
    J'ai essayé de faire LIKE'#value#' mais cela me renvoi une erreur.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 54
    Par défaut
    J'ai trouvé ma réponse.

    En réalité il fallait changer dans la bdd le type de la colonne code postal qui était en varchar(6) en varchar(250)

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

Discussions similaires

  1. Concatenation String + int pour char[]
    Par Djaydjay13 dans le forum Débuter
    Réponses: 3
    Dernier message: 11/02/2010, 20h47
  2. Les types string/int en résultats d'une requête
    Par labluegirl dans le forum Langage
    Réponses: 8
    Dernier message: 18/10/2009, 15h18
  3. Problème pour requête SQL LIKE avec ACCESS
    Par ar.aziz dans le forum VB.NET
    Réponses: 2
    Dernier message: 02/07/2008, 10h53
  4. [C#] Comment coder un String.Join pour des int ?
    Par luimême dans le forum C#
    Réponses: 2
    Dernier message: 12/10/2005, 08h14
  5. modification de format? Un Int devient un String.
    Par thanathz dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 31/01/2005, 14h17

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