Quote Originariamente inviata da Alhazred Visualizza il messaggio
Secondo me il suo problema è che gli da fastidio il civico, per lui "Via Milano 4" e "Via Milano 5" devono dare lo stesso risultato.
In tal caso deve tirare via il civico dalla stringa dell'indirizzo ed eseguire la query con l'indirizzo così pulito.
Può essere, come accennato potrebbe anche tirar via tutto tranne i caratteri. Ma per quanto ne so con MySQL e basta non si può fare, serve una procedurina.
Personalmente memorizzo due campi: indirizzo "normale" e indirizzo "rilassato", nel qual caso taglio via tutto quanto e tengo solo la parte "utile" (stesso discorso ad esempio per spazi e . nelle intestazioni delle ditte, tipo Cippa Lippa SAS e Cippa Lippa S.A.S.).
Questo mi consente, tra l'altro di usare gli indici in fase di ricerca evitando la full scan.
Per la precisione spesso memorizzo direttamente il CRC32 della stringa rilassata, con un doppio controllo (se CRC= allora confronta il testo) per le collisioni, ottenendo ricerche = su indici hash invece che "alla like" su indici ad albero.

Certo, se hai 100 record non val la pena complicarsi la vita.