Php 重复数据消除my mysql数据库-类似行

Php 重复数据消除my mysql数据库-类似行,php,mysql,Php,Mysql,我有一个DB表,其中包含公司列表: +---------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+---------+----------------+ | company | varchar(255) | NO

我有一个DB表,其中包含公司列表:

+---------+--------------+------+-----+---------+----------------+
| Field   | Type         | Null | Key | Default | Extra          |
+---------+--------------+------+-----+---------+----------------+
| company | varchar(255) | NO   | UNI | NULL    |                |
| id      | int(200)     | NO   | PRI | NULL    | auto_increment |
| image   | varchar(255) | NO   |     | NULL    |                |
+---------+--------------+------+-----+---------+----------------+
其中包含约15000家公司的名单。 我想消除类似行的重复,因为表数据来自多个源

例如,如果我搜索“lloyds”公司,我会得到“lloyds,lloyds plc”的结果。我想合并任何公司,只是有'有限公司,plc,集团'等结束,并消除重复

但是,如果匹配结果中存在“image”列数据,我还需要保留该列数据。例如,根据这个结果,我想从第1行中简单地将重复数据消除为“lloyds”,但保留第2行中的“image”:

select * from companies where match(company) against ('*lloyds*')

*************************** 1. row ***************************
company: Lloyds
     id: 9034
  image:
*************************** 2. row ***************************
company: Lloyds plc
     id: 3202
  image:LOGO_URL
最后,我还有一个作业DB表,每个作业都有一个对应的公司ID。 我需要保留所有删除的公司ID的记录/数组,以及它们从重复数据消除更新到的内容,以便我可以在我的jobs DB中更新公司ID,否则我将有一个不存在的公司的工作


我怎样才能做到这一点?我需要什么查询?

这不是一项有趣的任务。您能否为这两个表提供具有代表性的CREATE和INSERT语句。但“Lloyds”与“Lloyds plc”不同。你想怎么处理this@BerndBuffen同意他们在技术上是不一样的,但目前我提供的工作是最匹配的,所以从“劳埃德”找工作的人不会看到“劳埃德公司”的工作。因此,我想简单地将重复数据消除为“lloyds”,因为如果有人实际搜索“lloyds plc”,他们仍将获得“lloyds”下的所有作业,包括lloyds plc特定的作业。请选中此选项,如果找到了正确的行。如果有效,我完成了查询:从重复数据消除d1中选择d1.*,d2.*,在d1.name上左连接重复数据消除d2,如CONCAT(d2.name,“%”)和d1.id d2.id,其中d2.name不为空@BerndBuffen它选择了正确的行(除其他行外),但也有一系列错误匹配:从公司d1中选择d1.*,d2.*,在d1上加入公司d2。类似CONCAT的公司(d2.company,“%”)和d1.id d2.id,其中d2.company不为空,它将“AA”与“Aalpha解决方案”匹配。是否可以修改查询,使通配符更像是可接受通配符的正则表达式列表?e、 g'ltd | plc |英国|招聘|