Costruire una query dinamica per la ricerca di più parole chiave

di Nanni Bassetti, in Classic ASP, Database, Tips,

Con questo script si possono creare delle query dinamiche per cercare elementi "sparsi" nel testo contenuto in un campo di database.

Per esempio quando nel campo "corpo" c'è il seguente testo:
"Bari, varata la legge per i patti territoriali, che incentiveranno lo sviluppo di imprese tecnologiche..."

Se abbiamo una Textbox di ricerca in un form HTML dove possiamo scrivere qualsiasi cosa da ricercare tra i testi contenuti nel campo "corpo", come questa

<input type="text" name="articolo">

e se la sql normale è del tipo:

<%

key = request.form("articolo")
sql = "SELECT * FROM art WHERE corpo LIKE '%" & key & "'%"

%>

la query sql sarà una cosa di questo tipo:

select * from art where corpo like '%patti territoriali Bari%'

Che non dà alcun risultato perchè la frase non è compresa esattamente così nel testo.

Ecco uno script che permette di superare questa limitazione:

<%

key = request.form("articolo")
sost = "%' and corpo like '%"

key2 = Replace(key, " ",  sost)

sql = "SELECT * FROM art WHERE corpo LIKE '%"&key2&"%'"

...
%>

così facendo la frase "patti territoriali di Bari", viene spezzata e ogni spazio (blank) viene sostituito, tramite la funzione "Replace", dalla frase "%' and corpo like '%", così che la query diventi

SELECT * FROM art WHERE corpo LIKE '%patti%' AND corpo LIKE '%territoriali%' AND corpo LIKE '%Bari%'

In questo modo la query cerca le tre parole nel testo e non è importante il loro ordine, ma basta che esse siano presenti contemporaneamente nel testo.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi