> Ho provato con LIKE e CONTAINING ma mi restituisce anche parole che contengono la parola cercata Es. se la parola cercata è "case"
> Mi restituisce "case,caserma,casella ecc", mentre io devo ottenere la parola > esatta.
Ciao.
Usare un DB senza troppa cognizione di causa è MALE.
Quindi, per prima cosa, non puoi prescindere dal leggere qualcosa sulla progettazione di un database relazionale ...
Infatti, Il tuo DB è SBAGLIATO E PROGETTATO MALE e DEVE ESSERE NORMALIZZATO. Ovvero, dovresti spezzare la tua tabella in 2
1) Tabella master con tutti i campi TRANNE quello che contiene le parole multiple, per comodità lo definisco "multiword".
2) Tabella detail con n record, dove N è il numero di parole contenute nel campo "multiword"
Questa tabella ha un suo ID come chiave primaria, un IDMASTER che punta all'omonimo campo della tabella al punto 1 e un campo "singleword".
Su questa tabella metti un indice UNIQUE basato su masterid + singleword, in modo da evitare che per lo stesso record MASTER in detail ci sia più di un record con la stessa parola.
A quel punto, la tua query diventa:
SELECT DISTINCT MASTER.MASTERID, MASTER.QUALCOSA, MASTER.QUALCOSALTRO. DETAIL.SINGLEWORD
JOIN DETAIL ON MASTER.MASTERID = DETAIL.MASTERID
WHERE DETAIL.SINGLEWORD = 'ES'
...lo so, lo so...mo starai pensando "...ma che rottura di balle!!!".
Hai ragione, ma, per la mia esperienza, un db progettato MALE, scoppia.
Non è un SE, ma un QUANDO.
E poi, quando succede, ristrutturare un db pieno di dati si fa, ma oltre ad essere scomodo è PERICOLOSO.
Quindi, meglio iniziare BENE, in quanto:
a) se inizi con la merda finisci con la merda
b) la merda, piu' la rimescoli e piu' puzza.
A.