如何在mysql中查询soundex()

如何在mysql中查询soundex(),mysql,soundex,Mysql,Soundex,使用soundex()在MySql中搜索的正确结构是什么?我知道如何制作soundex(): 只是不知道如何在我的查询中包含这个 如果您在人员表的姓名字段中搜索“lewis”,则执行以下查询: SELECT * FROM people WHERE soundex("lewis") = soundex(name); 这应该行得通 select * from table_name where soundex(column_name) = soundex('word'); 这是一个阅读这些内容的好

使用
soundex()
在MySql中搜索的正确结构是什么?我知道如何制作soundex():

只是不知道如何在我的查询中包含这个

如果您在
人员
表的
姓名
字段中搜索“lewis”,则执行以下查询:

SELECT *
FROM people
WHERE soundex("lewis") = soundex(name);
这应该行得通

select * from table_name where soundex(column_name) = soundex('word');

这是一个阅读这些内容的好地方:

显然,soundex不是为这样的片段而设计的(例如,
选择soundex(“房屋清洁”),soundex(“房屋”)
,这不匹配),但是如果您想执行类似于的讨厌的
soundex,您可以

SELECT * FROM tablename WHERE SOUNDEX(column) LIKE CONCAT(SOUNDEX('partial_string'), '%')
你也可以这样做

SELECT * FROM tablename WHERE SOUNDEX(column) LIKE CONCAT(TRIM(TRAILING '0' FROM SOUNDEX('hows ')), '%')

这个“有点”有效

其中soundex(“搜索字符串”)=soundex(搜索列)
你可以在这里看到一个例子,我尝试了你的建议pala_u,但运气不好;它不返回任何结果。我一直在使用soundex()代码进行搜索,例如,“Lewis”的soundex()代码是soundex(L200)。我假设我使用soundex()代码而不是文本进行搜索,否则这就违背了为soundex()编写代码的初衷,对吧。这很有效,谢谢。但是为什么会有一个soundex()代码,例如选择soundex('Lewis')?它会生成搜索词的代码,以及它所比较的字段的代码。例如
soundex(“lewis”)=L200
soundex(“luis”)=L200
。因此,
soundex(“lewis”)=soundex(“luis”)
匹配,而
“lewis”=“luis”
显然不匹配。英语中“发音相同”的单词通常应该有相同的代码;我想弄明白这件事已经有很长时间了。
SELECT * FROM tablename WHERE SOUNDEX(column) LIKE CONCAT(TRIM(TRAILING '0' FROM SOUNDEX('hows ')), '%')