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 :

PB avec MATCH dans une requete.


Sujet :

Requêtes MySQL

  1. #1
    pjl
    pjl est déconnecté
    Futur Membre du Club
    Inscrit en
    Mars 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 8
    Points : 8
    Points
    8
    Par défaut PB avec MATCH dans une requete.
    En utilisant les full index sur une table, j'ai un souci.
    Si je fais ma recherche sur un champ, pas de PB mais dès que j'en rajoute un 2eme, ca plante.
    Ca marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT N.id_news, PN.label_news, N.titre_news, MATCH (N.texte) AGAINST ('russie') FROM news N INNER JOIN param_news PN ON N.type_news = PN.type_news WHERE MATCH (N.texte) AGAINST ('russie') LIMIT 0 , 30;
    Ca plante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT N.id_news, PN.label_news, N.titre_news, MATCH (N.titre_news, N.texte) AGAINST ('russie') FROM news N INNER JOIN param_news PN ON N.type_news = PN.type_news WHERE MATCH (N.titre_news, N.texte) AGAINST ('russie') LIMIT 0 , 30;
    Message d'erreur :
    (Can't find FULLTEXT index matching the column list)
    Et si je fais la requete uniquement sur le champ titre_news, ca marche impec.
    Ca me paraît tellement logique de chercher avant de demander que...
    A méditer.............

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    tu as bien déclaré un "FULL INDEX" sur les 2 champs dans ta table ?

  3. #3
    pjl
    pjl est déconnecté
    Futur Membre du Club
    Inscrit en
    Mars 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    A priori oui.
    Voici la structure de ma table :
    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
    16
    17
    18
    19
    20
    21
    22
    CREATE TABLE `news` (
      `id_news` int(10) unsigned NOT NULL auto_increment,
      `type_news` tinyint(3) unsigned NOT NULL default '0',
      `type_lieu` tinyint(4) default NULL,
      `date_debut` datetime NOT NULL default '0000-00-00 00:00:00',
      `date_fin` datetime default NULL,
      `validate` tinyint(1) unsigned NOT NULL default '0',
      `titre_news` varchar(150) default NULL,
      `vignette` varchar(30) default NULL,
      `resume_news` text,
      `texte` text,
      `lien` varchar(200) default NULL,
      `resultat` text,
      `image_url` varchar(200) default NULL,
      `image_titre` varchar(100) default NULL,
      PRIMARY KEY  (`id_news`,`id_news`),
      UNIQUE KEY `id_action` (`id_news`),
      FULLTEXT KEY `titre_news` (`titre_news`),
      FULLTEXT KEY `resume_news` (`resume_news`),
      FULLTEXT KEY `texte` (`texte`),
      FULLTEXT KEY `resultat` (`resultat`)
    ) TYPE=MyISAM AUTO_INCREMENT=140 ;
    Ca me paraît tellement logique de chercher avant de demander que...
    A méditer.............

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    essaye avec une clé unique
    ca fonctionne comme ca avec ma base
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FULLTEXT KEY fulltext (titre_news, resume_news, texte, resultat)
    petite information qui peut être utile : tu as quelle version de mysql ?
    mon exemple fonctionne avec 3.23.56

  5. #5
    pjl
    pjl est déconnecté
    Futur Membre du Club
    Inscrit en
    Mars 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Pour le dev : 4.0.15

    Pour le site qui est sur free, 4.0.16

    J'ai modifié ma table avec tes indications :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      FULLTEXT KEY `moteur` (`titre_news`,`resume_news`,`texte`,`resultat`),
      FULLTEXT KEY `titre_news` (`titre_news`)
    J'ai donc 2 index : un pour une recherche sur le titre et un pour une recherche sur l'ensemble de mes textes :
    Cette requete cherche sur les titres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT N.id_news, PN.label_news, N.titre_news, MATCH (N.titre_news) AGAINST ('russie') FROM news N INNER JOIN param_news PN ON N.type_news = PN.type_news WHERE MATCH (N.titre_news) AGAINST ('russie') LIMIT 0 , 30;
    Et celle-ci cherche sur tout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT N.id_news, PN.label_news, N.titre_news, MATCH (N.titre_news, N.resume_news, N.texte,N.resultat) AGAINST ('russie') FROM news N INNER JOIN param_news PN ON N.type_news = PN.type_news WHERE MATCH (N.titre_news, N.resume_news, N.texte,N.resultat) AGAINST ('russie') LIMIT 0 , 30;
    Tout marche bien, je te remercie.
    Maintenant, une dernière question :
    est-ce que je peux utiliser le nom de ma clef 'moteur' dans ma requête et si oui, comment ?
    Ca me paraît tellement logique de chercher avant de demander que...
    A méditer.............

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

Discussions similaires

  1. Probleme avec critere dans une requete sur access..
    Par emirov dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 05/04/2008, 23h11
  2. Somme dans une requete avec regroupement
    Par louroulou dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 19/07/2006, 21h20
  3. Souci avec une variable dans une requete
    Par polianita dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 21/06/2006, 17h05
  4. Calculs dans une requete avec conditions multiples
    Par Sha1966 dans le forum Access
    Réponses: 3
    Dernier message: 13/01/2006, 15h18
  5. Date nulle dans une requete paramétrée avec TParameter
    Par denrette dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/06/2004, 08h37

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