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 :

Requête avec multiple clause where


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Points : 17
    Points
    17
    Par défaut Requête avec multiple clause where
    Bonjour,

    J'aimerai votre avis quant à la manière optimale de traiter les requêtes composées d'un grand nombre de conditions.
    Note : toutes les conditions sont sous la forme d'une chaîne de 4 caractères.

    Cette requete pourrait fonctionner (avec 20 ou 30 colonnes...) :
    SELECT
    `id` FROM `table`
    WHERE
    (`col1` = '$condition1') AND
    (`col2` = '$condition2') AND ... etc.

    Celle-ci, avec toute les valeurs dans un varchar, aussi :
    SELECT
    `id` FROM `table`
    WHERE
    (SUBSTRING(`col`,1,4) = '$condition1') AND
    (SUBSTRING(`col`,5,4) = '$condition2') AND ... etc.

    Merci d'avance pour vos commentaires
    Pierre

  2. #2
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Heu, c'est quoi la question ? Je ne vois pas où tu veux en venir...
    Pensez au bouton

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    D'une manière plus générale, ma question est de savoir quelle est la meilleures méthode pour extraire des enregistrements avec un grand nombre de clauses dans conditions WHERE.

    Les deux exemples ci-dessus fonctionnent, le quel est le plus rapide ? existe t'il d'autre méthodes ?

  4. #4
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Déjà les deux ne font pas la même chose, donc je vois mal comment les comparer.

    Ensuite la première est probablement plus rapide puisque s'il y a un index sur la colonne il sera utilisé, alors que je n'en suis pas persuadé pour la deuxième (les index sont utilisés lorsqu'on fait une recherche sur un préfixe gauche de la colonne)...
    Pensez au bouton

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

Discussions similaires

  1. Requête paramétrée avec une clause where IN(?)
    Par khayyam90 dans le forum JDBC
    Réponses: 4
    Dernier message: 22/02/2012, 12h50
  2. ORACLE v. 9 : Vue avec des clauses WHERE
    Par soffinette dans le forum Langage SQL
    Réponses: 4
    Dernier message: 01/02/2007, 14h11
  3. ORACLE 9.2 : Création d'une vue avec plusieurs clauses WHERE
    Par soffinette dans le forum Administration
    Réponses: 4
    Dernier message: 01/02/2007, 10h51
  4. Insert avec une clause where !?
    Par Thomad dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 04/08/2006, 09h55
  5. [super requete] Dumper un model avec une clause where
    Par elievar dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/03/2005, 17h05

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