Soundex är inte bra för den här typen av saker eftersom olika ord kan ge dig samma Soundex-resultat och kommer därför att sortera godtyckligt. En bättre lösning för detta är Levenshein Edit Distance-algoritmen och du kanske kan implementera den som en funktion i din databas:Länk till Levensheint impl. som MySql-lagrad funktion !!!
Du kan också kolla in den här SO-länken . Den innehåller en SQL-server (T-SQL-specifik) implementering av algoritmen men den bör vara möjlig att porta. Mekaniken i algoritmen är ganska enkel och behöver bara en 2D-array och looping över sträng.