我已经搜索了这些问题,并且提出了类似的问题,但没有我认为可以使用的解决方案。这个问题类似于模糊匹配......有点。我需要帮助比较两个表。一个表是公司引用表,另一个是获取每天导入的原始公司数据的表。引用表很干净,并且有一个与每个公司相关联的公司 ID。导入的每日数据没有公司 ID。我想要做的是让每日数据引用 company_name 上的“公司引用表”,并根据 company_name 更新“公司表”的列 company_state。不幸的是,company_name 的每日数据字符串每天并不总是相同。实际公司名称前面或后面可能有各种字符(a-z、0-9、+、-、.)和空格,每天都有不同的长度,所以我不相信我可以使用 charindex 来清理它。
公司引用表
company_id company_name company_state
1 Awesome Inc NY
2 Excel-guru AL
3 Clean All MI
公司表
company_name company_state
abc123 Awesome Inc NULL
Excel gur xyz-987 NULL
Clean All Cleanall NULL
我想要它做的是这个。有点像模糊匹配。
公司表
company_name company_state
abc123 Awesome Inc NY
Excel gur xyz-987 AL
Clean All Cleanall MI
任何帮助深表感谢。谢谢你。
最佳答案
尝试以下查询更新 公司 table :
update company c INNER JOIN company_ref cr
ON c.company_name LIKE concat('%', cr.company_name, '%')
SET c.company_state = cr.company_state;
另一种方法是使用 选择
SELECT c.*, cr.* FROM company c INNER JOIN company_ref cr
ON c.company_name LIKE concat('%', cr.company_name, '%');
SQL fiddle :http://sqlfiddle.com/#!2/ec76f/1
关于SQL - 比较来自两个表的字符串(模糊匹配......排序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22215608/