Bonjour,

Je suis sur le developpement d'un site web qui references des documents (titre, resume, mot cle, thesaurus,...) et j'ai recuperé des script un peu partout pour realiser cette requete. Mes objectifs sont multiples :
1) Eviter la case et les accents
2) Recherche dans les tables de correspondance mot cle et thesaurus
3) Classer par date (champ datedoc)
4) Prendre uniquement les references entre le numéro a et le numéro b (un genre de limite, mais je sais pas ou le mettre)
5) Eviter les doublon.

C'est beaucoup je sais, mais si je pouvais m'en approcher un maximum se serai le paradis ici
Voici la requete que je genère pour la recherche du mot toto :
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
23
24
25
 
select documentsactifs.numdoc from documentsactifs where (to_ascii(documentsactifs.titre,'LATIN1') like '%toto%')
union
select documentsactifs.numdoc from documentsactifs where (to_ascii(documentsactifs.soustitre,'LATIN1') like '%toto%')
union
select documentsactifs.numdoc from documentsactifs where (to_ascii(documentsactifs.sujet,'LATIN1') like '%toto%')
union
select documentsactifs.numdoc from documentsactifs where (to_ascii(documentsactifs.resume,'LATIN1') like '%toto%')
union
select documentsactifs.numdoc from documentsactifs where (to_ascii(documentsactifs.notelibre,'LATIN1') like '%toto%')
union
select distinct t.numdoc
from   documentsactifs t join correspond d on t.numdoc = d.numdoc
join motclelibre m on d.nummotcle = m.nummotcle
where  m.nommotcle in ('toto')
group  by t.numdoc
having count(*) >= 1
union
select distinct t.numdoc
from   documentsactifs t join trouve d on t.numdoc = d.numdoc
 
join champthesaurus m on d.numchampthesaurus  = m.numchampthesaurus
where  m.terme in ('toto')
group  by t.numdoc
having count(*) >= 1
Je suis sous postgres et ma base et codé en UNICODE.

Que dois je changer pour atteindre mes objectifs?

Merci