Mysql 查询相似短语

Mysql 查询相似短语,mysql,sql,Mysql,Sql,有没有办法在SQL中将“美利坚合众国”与“美国”匹配 我在数据库中存储了名为“美国”的国家。 下面的查询应该从名为“United States”的数据库中检索该项 SELECT * FROM `countries` WHERE `name` LIKE '%United States of America%' 谢谢大家! 这就是你想要的吗 where 'United States of America' like concat('%', name, '%') 这是你想要的吗 where 'Un

有没有办法在SQL中将“美利坚合众国”与“美国”匹配

我在数据库中存储了名为“美国”的国家。 下面的查询应该从名为“United States”的数据库中检索该项

SELECT * FROM `countries` WHERE `name` LIKE '%United States of America%'
谢谢大家!

这就是你想要的吗

where 'United States of America' like concat('%', name, '%')
这是你想要的吗

where 'United States of America' like concat('%', name, '%')

对于这种情况,您应该查看弹性搜索数据库。它具有部分过滤器的功能

否则,您可以通过动态sql执行以下操作:

按空格/分隔符拆分字符串 使用联接时,1与给定单词匹配,0与给定单词不匹配 通过求和操作数可以透视或定位列的总匹配数,但只求目标命名列中的值的和可能更简单,因为您已经要使用动态sql 如果匹配的总数=字数,则绝对匹配为100%匹配,可能是顺序错误 对于非绝对匹配,将绝对词的总和/数量除以100%计算确定性 为此列表选择前1个,按原始单词分组,并按确定顺序排序。
或者,您可以按照@Gordon所说的做一个简单的一次性解决方案。对于这种情况,您应该查看弹性搜索数据库。它具有部分过滤器的功能

否则,您可以通过动态sql执行以下操作:

按空格/分隔符拆分字符串 使用联接时,1与给定单词匹配,0与给定单词不匹配 通过求和操作数可以透视或定位列的总匹配数,但只求目标命名列中的值的和可能更简单,因为您已经要使用动态sql 如果匹配的总数=字数,则绝对匹配为100%匹配,可能是顺序错误 对于非绝对匹配,将绝对词的总和/数量除以100%计算确定性 为此列表选择前1个,按原始单词分组,并按确定顺序排序。 或者,你可以按照@Gordon所说的做一个简单的一次性解决方案