sql >> Databasteknik >  >> RDS >> Mysql

MySQL LIKE %string% inte riktigt förlåtande nog. Något annat jag kan använda?

Om du använder MyISAM kan du använda fulltextindexering. Se den här handledningen

Om du använder en annan lagringsmotor kan du använda en tredje parts fulltextmotor som sfinx, som kan fungera som en lagringsmotor för mysql eller en separat server som kan frågas.

Med MySQL fulltextindexering en sökning på A J Kelly skulle matcha AJ Kelly (nej för att blanda ihop saker men A, J och AJ skulle ignoreras eftersom de är för korta som standard och det skulle matcha på Kelly.) Generellt är Fulltext mycket mer förlåtande (och vanligtvis snabbare än LIKE '%string%') eftersom det tillåter partiell matcher som sedan kan rangordnas efter relevans.

Du kan också använda SOUNDEX för att göra sökningar mer förlåtande genom att indexera de fonetiska motsvarigheterna till ord och söka efter dem genom att använda SOUNDEX på dina söktermer och sedan använda dem för att söka i indexet. Med soundex mary , marie och marry kommer alla att matcha, till exempel.



  1. SQL TABELL

  2. SQL Server, den vilseledande XLOCK &optimeringar

  3. Hämta poster från en tabell där det inte finns en post i en annan

  4. Kan inte öppna mysql-workbench