2015-04-13 3 views
2

Quelle est la structure appropriée pour la recherche dans MySQL en utilisant soundex()? Je sais comment produire un soundex():Comment faire pour interroger soundex() dans mysql

select soundex('str'); 

Je ne sais pas comment inclure cela dans ma requête.

+0

'where soundex (" search_string ") = soundex (colonne_recherche)' –

+0

Vous pouvez voir un exemple ici http://stackoverflow.com/questions/24250267/mysql-search-results-for-similar-sounds/24250438#24250438 –

+0

J'ai essayé votre suggestion pala_ avec aucune chance; il ne renvoie aucun résultat. J'ai cherché avec le code soundex(), par exemple, le code soundex() pour 'Lewis' est soundex (L200). Je suppose que je recherche avec le code soundex() plutôt que du texte, sinon cela va à l'encontre du but d'avoir un code pour soundex() à la première place à droite. – jimmytiler

Répondre

1

Si vous recherchez "lewis" contre le champ name de people table, vous effectuez cette requête:

select * 
    from people 
    where soundex("lewis") = soundex(name); 

example here

+0

Cela a fonctionné, merci. Mais pourquoi y a-t-il un code soundex() alors, par ex. SELECT SOUNDEX ('Lewis')? – jimmytiler

+0

il génère les codes pour le terme de recherche, ET les champs avec lesquels il compare. par exemple 'soundex (" lewis ") = L200' et' soundex ("luis") = L200'. Donc 'soundex (" lewis ") = soundex (" luis ")' correspond, alors que '" lewis "=" luis "' ne le ferait évidemment pas. Les mots qui "sonnent le même" en anglais devraient généralement avoir le même code. –

+0

Ahh, merci beaucoup; J'ai essayé de comprendre cela depuis longtemps maintenant. – jimmytiler