Mysql 如何使用like运算符更新表

Mysql 如何使用like运算符更新表,mysql,Mysql,嘿,我有两个表A和B。A由学生姓名和学生id组成。问题是我有另一个表B,其中包含学生姓名和学生id。当前B表id字段现在为空。A中的所有名称与B中的大多数名称相同。我使用like concat运算符进行匹配。例如在A中有“约翰·塞缪尔·亚伯拉罕”,B中有“约翰·塞缪尔·A”。我想在B表中使用他的id SELECT * FROM table2 B JOIN table1 A ON A.student_name LIKE CONCAT('%', B.student_name ,'%')

嘿,我有两个表A和B。A由学生姓名和学生id组成。问题是我有另一个表B,其中包含学生姓名和学生id。当前B表id字段现在为空。A中的所有名称与B中的大多数名称相同。我使用like concat运算符进行匹配。例如在A中有“约翰·塞缪尔·亚伯拉罕”,B中有“约翰·塞缪尔·A”。我想在B表中使用他的id

  SELECT * FROM table2 B  JOIN  table1 A ON A.student_name LIKE CONCAT('%', B.student_name ,'%') 
从中,我可以选择几乎所有可能的相似名称。但是不能选择拼写错误的名称。为什么? 在更新此文件时,我也无法更新整行 我的更新查询是

   update table2 B JOIN table1 A ON A.student_name LIKE CONCAT('%', B.student_name ,'%') set B.student_id = A.student_id     

您不能保证LIKE每个ID只返回一行,所以最终结果将非常不正确。尝试在没有LIKE的情况下更新表B,然后匹配缺少的ID和名称。由于某些拼写错误,仍有150条记录未受影响。我无法手动输入150行