子字符串上的MySQL连接

子字符串上的MySQL连接,mysql,substring,inner-join,Mysql,Substring,Inner Join,我在一列中有一长串不同格式的字符串。我希望搜索该子字符串,然后在保留原始列的同时组织该列 有一个表有8列,其中一列包含字符串。另一个表中还有一个单词列表。我想将列表中的这些单词与这些字符串作为附加列进行匹配。在Tom,Tom,Tom az,Tom Hanks的大表中,会有另一列,Tom在列表中与所有人对应 我曾考虑过使用JOIN函数,但不确定如何使用子字符串。 excel逻辑应该是类似于=IFSEARCHTom、asfj-Tom-dsf、, 汤姆,零 如果找到了多个匹配项,我想使用前面“ID”为

我在一列中有一长串不同格式的字符串。我希望搜索该子字符串,然后在保留原始列的同时组织该列

有一个表有8列,其中一列包含字符串。另一个表中还有一个单词列表。我想将列表中的这些单词与这些字符串作为附加列进行匹配。在Tom,Tom,Tom az,Tom Hanks的大表中,会有另一列,Tom在列表中与所有人对应

我曾考虑过使用JOIN函数,但不确定如何使用子字符串。 excel逻辑应该是类似于=IFSEARCHTom、asfj-Tom-dsf、, 汤姆,零


如果找到了多个匹配项,我想使用前面“ID”为1-11mil的整数列的匹配项。

这个问题仍然有点含糊不清。您应该真正显示表结构、示例数据和预期结果

假设您有这个最小的结构和数据:

CREATE TABLE People (
  id INTEGER AUTO_INCREMENT PRIMARY KEY,
  FullName TEXT
);
INSERT INTO People (FullName) VALUES ('Tom Hanks');
INSERT INTO People (FullName) VALUES ('Mary 467');
INSERT INTO People (FullName) VALUES ('ann margaret' );
INSERT INTO People (FullName) VALUES ('ziddy tom');
INSERT INTO People (FullName) VALUES ('bloody mary');
INSERT INTO People (FullName) VALUES ('mary ann');

CREATE TABLE Names (
  id INTEGER AUTO_INCREMENT PRIMARY KEY,
  Name TEXT
);  
INSERT INTO Names (Name) VALUES ('Tom' );
INSERT INTO Names (Name) VALUES ('Mary');
INSERT INTO Names (Name) VALUES ('Ann' );
。。。然后,您可以通过如下查询获得第一个结果:

SELECT p.*, n.Name
FROM People p
JOIN Names  n ON p.FullName LIKE CONCAT('%',LOWER(n.Name),'%');
测试

不过也有一些问题

不清楚您是否只想搜索整个单词。您的Excel示例没有做到这一点,因此我坚持使用一个简单的示例。要搜索整个单词,类似的操作将无法正常工作。 玛丽·安出现了两次,因为全名包含两个名字。你说你想根据ID选择一个,但不清楚你是否理解这个问题。
外部网站上的excel截图不是这里提问的方式。把信息放在问题中。。。可能是代码逻辑,而不是屏幕截图。我感谢您的帮助。我很难解释我的话,但希望逻辑是有帮助的。你用的是什么关系数据库管理系统?这可能会有所帮助。列表中的值是常量吗?他们住在另一张桌子上吗?还是什么?MYSQL。有一个包含8列的表,其中一列包含字符串。另一个表中还有一个单词列表。我想将列表中的这些单词与这些字符串作为附加列进行匹配。在汤姆、汤姆、汤姆·阿兹、汤姆·汉克斯的大表格中,会有另一列,其中汤姆在列表中与所有人对应。好的。。。请把所有这些信息放在问题本身。另外,请指定当字符串包含多个搜索词时的期望值。谢谢,我想我已经明白我要做什么了。非常感谢你的帮助。