Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL LIKE %string% não perdoa o suficiente. Mais alguma coisa que eu possa usar?


Se você estiver usando o MyISAM, poderá usar a indexação de texto completo. Veja este tutorial

Se você estiver usando um mecanismo de armazenamento diferente, poderá usar um mecanismo de texto completo de terceiros, como sphinx, que pode atuar como um mecanismo de armazenamento para mysql ou um servidor separado que pode ser consultado.

Com a indexação de texto completo do MySQL, uma pesquisa em A J Kelly corresponderia a AJ Kelly (não para confundir as coisas, mas A, J e AJ seriam ignorados, pois são muito curtos por padrão e combinariam com Kelly.) Geralmente o Fulltext é muito mais tolerante (e geralmente mais rápido que LIKE '%string%') porque permite parcial correspondências que podem ser classificadas por relevância.

Você também pode usar SOUNDEX para tornar as pesquisas mais tolerantes ao indexar os equivalentes fonéticos das palavras e pesquisá-los aplicando SOUNDEX em seus termos de pesquisa e, em seguida, usando-os para pesquisar o índice. Com soundex mary , marie , e marry todos irão corresponder, por exemplo.