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

 MySQL Discussion :

Doublons et utilisation de LIMIT


Sujet :

MySQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Doublons et utilisation de LIMIT

    Bonjour, merci de prendre connaissance de ma requête afin d'apporter une reponse adequat:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Select DISTINCT   A.liret,
     A.Intitule,
    A.Sal,
    A.lieu
    A.resume
    From table1 A, table2 B
    Where          A.Intitule    like    ?
                 OR    A. Detail   like   ?
                 OR    A.Profil     like    ?
                 OR    A.Acivity  like    ?
                AND   A.lieu          =  ?
                 AND  B.pays        = ?
                 AND   A.SiretCLI   =   B.siret                                                       
                                    + " ORDER BY DatDepot DESC LIMIT "
                                         + pageStart+ "," + PageEnd ;
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    for (int i =0; i < keyword.length; i++)
                    { 
                        ps.setString(1,  '%'+keyword[i]+'%');
                        ps.setString(2,  '%'+keyword[i]+'%'); 
                        ps.setString(3,  '%'+keyword[i]+'%'); 
                        ps.setString(4,  '%'+keyword[i]+'%'); 
                        ps.setString(5, lieu);      
                        ps.setString(6, pay);               
                        rs = ps.executeQuery();
                    …..
                    ….
          }

    Pour clarification, la boucle for() appelle la requete plusieur fois selon la taille keyword.length .
    Pour chaque exécution de la requete, les critères 1 2,3,4 prennent la même valeur exemple boys
    et effectue la recherche dans les zone avec condition like, ensuite le boucle appelle de nouveau la requête avec le critère
    suivant exemple ingénieur et effectuer la même recherche, Cette opération continue jusqu’à ce que tous les critères soient recherche

    Problème 1:

    Le résultat génére les doublons( par exemple si deux ou plusieurs critères de recherche figurent sur une
    même ligne, la ligne est généré plusieurs fois.


    Problème 2:

    Après plusieurs essaies, j'ai constaté que le mot "limit" dans le SELECT impact le mot "like".
    C'est-à-dit la recherche est effectué uniquement sur le champ “A.Intitule like ?”
    au lieux d'effectuer la recherche sur tous les champs


    Est-ce que quelque peux apporter une solution pour améliorer ma requête.

    Bonne réception

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Votre requête étant fausse, difficile de savoir ce que vous essayez de faire puisque vous n'avez pas expliqué le but final, que l'on devine néanmoins partiellement. Pouvez -vous détailler vos conditions de recherche ?

    Dans votre requête, outre la jointure non normalisée, vous avez surtout un problème de cloisonnement de vos conditions dans le WHERE. Utilisez des parenthèses.

    Enfin, appeler cette requete en boucle est très certainement un mauvaise idée. Pourquoi ne pas faire une unique requête qui répond directement au besoin ?

Discussions similaires

  1. Utilisation et limitation de la Fonction Copy()
    Par Jinx_ dans le forum Langage
    Réponses: 4
    Dernier message: 30/01/2010, 09h08
  2. masquer les doublons sans utiliser distinct
    Par Misato dans le forum IHM
    Réponses: 3
    Dernier message: 07/06/2007, 11h06
  3. utilisation de LIMIT
    Par kawther dans le forum Langage
    Réponses: 1
    Dernier message: 16/04/2007, 00h03
  4. utilisation du LIMIT
    Par vanou dans le forum Requêtes
    Réponses: 2
    Dernier message: 28/03/2007, 11h06
  5. [ Hibernate ] Utilisation de limit possible ?
    Par cicolas dans le forum Hibernate
    Réponses: 2
    Dernier message: 13/06/2006, 10h29

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