Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL LIKE %string% non è abbastanza clemente. Qualcos'altro che posso usare?

Se stai usando MyISAM, puoi usare l'indicizzazione del testo completo. Guarda questo tutorial

Se stai utilizzando un motore di archiviazione diverso, puoi utilizzare un motore di testo completo di terze parti come sphinx, che può fungere da motore di archiviazione per MySQL o un server separato che può essere interrogato.

Con MySQL full text indicizzazione una ricerca su A J Kelly corrisponderebbe a AJ Kelly (no per confondere le cose, ma A, J e AJ verrebbero ignorati in quanto sono troppo brevi per impostazione predefinita e corrisponderebbero a Kelly.) Generalmente Fulltext è molto più indulgente (e solitamente più veloce di LIKE '%string%') perché consente partite che possono quindi essere classificate in base alla pertinenza.

Puoi anche utilizzare SOUNDEX per rendere le ricerche più permissive indicizzando gli equivalenti fonetici delle parole e ricercandoli applicando SOUNDEX ai termini di ricerca e quindi utilizzando quelli per cercare l'indice. Con soundex mary , marie e marry corrisponderanno tutti, ad esempio.