probleme de requette

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme de requette

par led » 12 sept. 2007, 15:03

Effectivement on peut mais j'ai changer ma base en mettant Keyword et Titre en fulltext.

Le resultat le plus marrant est qu'une requete avec match against met plus de temps qu'une requete n'utilisant que des like or et and... Moi qui pensait que le "match again" optimiser les scripts....

par Hubert Roksor » 12 sept. 2007, 14:25

le véritable sujet de ma question est de savoir si l'on peut faire des requete mélant des recherches sur des champs fulltext via le match(champs) against(valeur recherche) et des recherches champs like %mot recherche%
C'est possible, pour peu que tu ne te plantes pas entre les AND et les OR.

par led » 12 sept. 2007, 14:13

Oui c'est vrai ce n'est pas trop lisible.
Mais le véritable sujet de ma question est de savoir si l'on peut faire des requete mélant des recherches sur des champs fulltext via le match(champs) against(valeur recherche) et des recherches champs like %mot recherche%.
Car apparement, ma requete ne retourne aucun resultat...

Code : Tout sélectionner

select * from search where (match(Contenu) against('subvention') and Titre like "%subvention%" And Keyword like "%subvention%") OR (match(Contenu) against('retard') and Titre like "%'retard'%" And Keyword like "%retard%") order by dtPublication asc limit 0 , 10

Merci

par Hubert Roksor » 12 sept. 2007, 13:17

Euh... tu t'y retrouves avec tous ces and And OR and And OR and And OR ? Essaie en sautant des lignes et en mettants des parenthèses pour grouper les expressions comme

Code : Tout sélectionner

(a AND b) OR (b AND c AND d)

probleme de requette

par led » 12 sept. 2007, 13:06

Bonjour,

J'ai l 'impression qu'on ne peut pas faire ce genre de requete:

Code : Tout sélectionner

select * from search where match(Contenu) against('subvention') and Titre like "%subvention%" And Keyword like "%subvention%" OR match(Contenu) against('retard') and Titre like "%'retard'%" And Keyword like "%retard%" OR match(Contenu) against('avion') and Titre like "%'avion'%" And Keyword like "%'avion'%" OR match(Contenu) against('politique') and Titre like "%'politique'%" And Keyword like "%'politique'%" OR match(Contenu) against('jeux') and Titre like "%'jeux'%" And Keyword like "%'jeux'%" OR match(Contenu) against('france') and Titre like "%'france'%" And Keyword like "%'france'%" order by dtPublication asc limit 0 , 10
SI je ne garde que les match ... against je trouve des résultat sinon aucun.
Pouvez vous m'aider s'il vous plait?
Sinon j'hésite a mettre des champs fulltext sur KeyWor d et Titre ....