bonjour,

J'ai suivi le tutoriel sur l'indexation textuelle ( http://sql.developpez.com/indextextuelle ) , et je voudrai avoir un conseil pour récupérer le nombre de résultats d'une recherche.

Je prends le cas de la recherche avec un 'ET' sur plusieurs mots :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
select distinct t.TXT_ID
from   TEXTE t join INDEX d on t.TXT_ID = d.TXT_ID
               join MOT m   on d.MOT_ID = m.MOT_ID
where  m.MOT_MOT in ('BASSE', 'GUITARE', 'CONTREBASSE')
group  by t.TXT_ID
having count(*) >= 3
Ce que je souhaite faire c'est reprendre la requete avec un count() pour me donner le nombre de résultats:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
select count(distinct t.TXT_ID)
from   TEXTE t join INDEX d on t.TXT_ID = d.TXT_ID
               join MOT m   on d.MOT_ID = m.MOT_ID
where  m.MOT_MOT in ('BASSE', 'GUITARE', 'CONTREBASSE')
group  by t.TXT_ID
having count(*) >= 3
Bien sûr, cette solution ne marche pas, et me donne d'avantage de résultats que prévu, car la clause having n'est pas prise en compte.

Est-ce que vous avez une idée?