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 :

Select .. AS score..AND score > X ?


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Select .. AS score..AND score > X ?
    Bonsoir,

    dans le cadre d'un moteur de recherche sur un site, j'utilise Fulltext sur un mysql 5.0.

    J'ai trouvé sur le forum un moyen d'appliquer une pondération sur les champs de la table.

    Voici ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT titi, tutu,toto, 
    (MATCH (A) AGAINST ('mot_search')*3 )+ 
    (MATCH (B) AGAINST ('mot_search')*2) + 
    MATCH (C) AGAINST ('mot_search') 
     
    AS score FROM livre WHERE 
     
    (MATCH (A) AGAINST ('mot_search')*3 )+ 
    (MATCH (B) AGAINST ('mot_search')*2) + 
    MATCH (C) AGAINST ('mot_search')  ORDER BY `score` DESC LIMIT 0,20
    tout fonctionne bien mais je souhaite directement, dans cette requête, rajouter un équivalent de AND score > 3 afin de retirer les scores trop faibles.

    Nous avons donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [...]MATCH (C) AGAINST ('mot_search')   AND score > 3 ORDER BY `score`[...]
    j'ai le beau message d'erreur suivant
    Unknown column 'score' in 'where clause'
    une idée ?

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour à toi aussi,

    La clause "where" ne supporte pas les alias.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Bonsoir jeca,
    Merci pour ta réponse. OK pour le AS non pris en charge par WHERE mais celà ne m'avance pas trop pour le reste.
    PS : regarde mon historique tu comprendras que j'ai oublié de mettre le "bonjour" qui t'as fait défaut, il ne faut pas voir le mal partout....

    J'avais regardé du coté des UNION, JOIN... mais je m'y perds un peu...quelqu'un a-t-il une idée?
    Merci !

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Hartas Voir le message
    OK pour le AS non pris en charge par WHERE
    Il n'y a pas de AS dans le WHERE de ta requête mais tu y utilises l'alias 'score' et MySQL te dit qu'il ne connait pas cette colonne. Il faut répéter dans le WHERE la formule qui détermine le score au ieu d'utiliser l'alais 'score'.
    Rassure-toi, il ne fera qu'une seule fois le calcul pour chaque ligne retournée.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. SELECT.. FROM.. WHERE.. AND.. AND.. !
    Par jolona dans le forum VB.NET
    Réponses: 32
    Dernier message: 22/10/2013, 18h39
  2. Réponses: 2
    Dernier message: 08/09/2009, 11h41
  3. SELECT DATE BETWEEN ? AND ?
    Par kamel_smd dans le forum JDBC
    Réponses: 2
    Dernier message: 13/02/2008, 11h31
  4. SQL :select et AND
    Par Shabata dans le forum Langage SQL
    Réponses: 5
    Dernier message: 20/05/2003, 13h39

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