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 :

Notion de préférence dans une requete ?


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    Par défaut Notion de préférence dans une requete ?
    Bonjour,

    je ne suis pas très calé en MySQL, donc je viens demander de l'aide...
    je fais actuellement jusqu'a 3 requetes pour obtenir un résultat qu'il est peut-être possible d'obtenir en une...

    pour simplifier, j'ai 2 variables :

    $super
    $moyen


    je fais donc une requete pour savoir si ma base contient un champ = $super
    sinon, je lance une seconde requete pour savoir si champ = $moyen
    sinon, je lance une troisieme requete pour recuperer un resultat en rand

    donc :
    select * from base where champ='$super' limit 1
    sinon :
    select * from base where champ='$moyen' limit 1
    sinon :
    select * from base order by rand() limit 1

    y a-t-il moyen de rationnaliser ca et de reduire le nombre de requete ?
    merci de votre aide
    carbon14

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 48
    Par défaut tu peux la faire bourin!
    Bonjour,

    select * from
    ((select * from base where champ='$super' limit 1)
    union
    (select * from base where champ='$moyen' limit 1)
    union
    (select * from base order by rand() limit 1)) MaTableDeFou
    limit 1
    Je pense quand même il y a une solution plus élégante.

    A+

  3. #3
    Membre Expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Par défaut
    Les index de type FULLTEXT peuvent vous aider à cela de façon indirect notamment grâce à l'option BOOLEAN MODE.

    12.6. Recherche en texte intégral (Full-text) dans MySQL

    12.6.1. Booléens de recherches en texte intégral

    Cordialement,
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  4. #4
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    Par défaut
    Oui, je crois aussi qu'il doit y avoir moyen de faire plus élégant, c'est pour ca que je demande ;-)

    Merci pour les liens Alexandre, je vais aller lire ca attentivement ;-)

    Carbon14

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

Discussions similaires

  1. Quote dans une requete...
    Par Isildur dans le forum Langage SQL
    Réponses: 6
    Dernier message: 20/06/2006, 10h57
  2. [SQL] Conditions sur une date dans une requete
    Par poufouille dans le forum Bases de données
    Réponses: 4
    Dernier message: 17/03/2004, 14h25
  3. test la valeur d'une date dans une requete
    Par TuxP dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/01/2004, 14h53
  4. Syntaxe pour avoir un seul resultat dans une requete
    Par Pompil dans le forum Requêtes
    Réponses: 2
    Dernier message: 06/09/2003, 15h51
  5. [syntaxe] Gerer les variables dans une requete
    Par rastapopulos dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 15/04/2003, 12h53

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