如何在 mysql 中查询 soundex()
How to query soundex() in mysql
使用 soundex()
在 MySql 中搜索的正确结构是什么?我知道如何生成 soundex():
select soundex('str');
只是不确定如何将其包含在我的查询中。
如果您要针对 people
table 的 name
字段搜索 "lewis",请执行此查询:
SELECT *
FROM people
WHERE soundex("lewis") = soundex(name);
这应该有效
select * from table_name where soundex(column_name) = soundex('word');
这是阅读以下内容的好地方:http://www.postgresonline.com/journal/archives/158-Where-is-soundex-and-other-warm-and-fuzzy-string-things.html
显然,soundex 不是为这样的部分设计的(例如 SELECT SOUNDEX('house cleaning'), SOUNDEX('house')
,它不会匹配),但是如果你想执行一个讨厌的 SOUNDEX LIKE
,你可以
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 ')), '%')
这个"kinda"有效
MySQL 现在有一种本地方法可以做到这一点!
您可以使用语法 SOUNDS LIKE
进行相似性搜索。
SELECT * FROM table Where SOUNDEX(`field1`) = SOUNDEX(`field2`);
相当于:
SELECT * FROM table Where `field1` SOUNDS LIKE `field2`;
使用 soundex()
在 MySql 中搜索的正确结构是什么?我知道如何生成 soundex():
select soundex('str');
只是不确定如何将其包含在我的查询中。
如果您要针对 people
table 的 name
字段搜索 "lewis",请执行此查询:
SELECT *
FROM people
WHERE soundex("lewis") = soundex(name);
这应该有效
select * from table_name where soundex(column_name) = soundex('word');
这是阅读以下内容的好地方:http://www.postgresonline.com/journal/archives/158-Where-is-soundex-and-other-warm-and-fuzzy-string-things.html
显然,soundex 不是为这样的部分设计的(例如 SELECT SOUNDEX('house cleaning'), SOUNDEX('house')
,它不会匹配),但是如果你想执行一个讨厌的 SOUNDEX LIKE
,你可以
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 ')), '%')
这个"kinda"有效
MySQL 现在有一种本地方法可以做到这一点!
您可以使用语法 SOUNDS LIKE
进行相似性搜索。
SELECT * FROM table Where SOUNDEX(`field1`) = SOUNDEX(`field2`);
相当于:
SELECT * FROM table Where `field1` SOUNDS LIKE `field2`;