Ciao,
sto implementando la ricerca in un gestionale che sto sviluppando.
In pratica e' una serie di interventi tecnici, per cui in una tabella del db access, ho la data, il cliente, la localita', ecc...
Ho un form dove inserisco il testo da cercare, imposto il criterio di ricerca con una select, e altre opzioni.
Passo poi tutto alla pagina di ricerca vera e propria, dove faccio uno split della stringa, dividendola in parole, controllo le opzioni e imposto la query sql di conseguenza.
Il mio problema e' il seguente.
Finche' inserisco una sola parola da cercare la query mi restituisci i risultati corretti.
Ad esempio se inserisco 'mestre' e come criterio metto 'localita', questa e' la query che viene costruita.
E questi sono i risultati corretti che ottengocodice:SELECT * FROM SCHEDAT WHERE LOCALITA LIKE '%mestre%' ORDER BY DATA DESC
Se invece nel campo di ricerca inserisco che so, 'mestre milano', lo split me lo fa corretto, questa e' la query che mi restituisce.codice:09/02/2006||2005007||BLUVACANZE S.P.A.||Mestre - Via Don Tosatto, 22 Borgo Pezzana 09/02/2006||2005006||BLUVACANZE S.P.A.||Mestre - Via Don Tosatto, 22 Borgo Pezzana 09/02/2006||2004995||BLUVACANZE S.P.A.||Mestre - Via Don Tosatto, 22 Borgo Pezzana 08/02/2006||2004991||BLUVACANZE S.P.A.||Mestre
Questi i risultati.codice:SELECT * FROM SCHEDAT WHERE LOCALITA LIKE '%mestre%' OR '%milano%' ORDER BY DATA DESC
Come e' chiaro, mi restituisce anche risultati che non c'entrano nulla con quello che si voleva ottenere.codice:09/02/2006||2005007||BLUVACANZE S.P.A.||Mestre - Via Don Tosatto, 22 Borgo Pezzana 09/02/2006||2005006||BLUVACANZE S.P.A.||Mestre - Via Don Tosatto, 22 Borgo Pezzana 09/02/2006||2004995||BLUVACANZE S.P.A.||Mestre - Via Don Tosatto, 22 Borgo Pezzana 08/02/2006||2004991||BLUVACANZE S.P.A.||Mestre 07/02/2006||2004986||IMPRESA EDILE||VERGIATE 07/02/2006||2004987||BLUVACANZE S.P.A.||Milano - Via Piacenza, 12 07/02/2006||2005010||BLUVACANZE S.P.A.||Domodossola - Via Regione delle Nosere, 33/a 07/02/2006||2004984||MENZAGHIhhh||MORNAGO 07/02/2006||2004994||BLUVACANZE S.P.A.||Argenta - Via Garibaldi, 6/a 07/02/2006||2005000||BLUVACANZE S.P.A.||San Giovanni Lupatoto - Via Monte Amiata, 1 07/02/2006||2005009||BLUVACANZE S.P.A.||Luino - Via Verdi, 8 07/02/2006||2005001||BLUVACANZE S.P.A.||S.Biagio di Callalta - Via Postumia Ovest, 76 07/02/2006||2005005||BLUVACANZE S.P.A.||Cerro Maggiore - Via Turati, 72 07/02/2006||2005004||BLUVACANZE S.P.A.||Napoli - Via Cinthia angolo Marco Aurelio 04/02/2006||2004983||BLUVACANZE S.P.A.||Torino ecc.....
Immagino che probabilmente sia la sintassi della query errata, ma anche cercando in vari post sui motori di ricerca discussi qui, non sono riuscito a trovare una soluzione.
Se qualcuno mi sa dare una mano, lo ringrazio fin d'ora !
Grazie !
Stefano

Rispondi quotando