我有一个包含公司列表的数据库表:
+---------+--------------+------+-----+---------+----------------+
| 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 | |
+---------+--------------+------+-----+---------+----------------+
其中包含约15,000家公司的列表。 我想删除类似的行,因为表数据来自多个来源。
例如,如果我搜索公司'lloyds',我会得到'lloyds,lloyds plc'的结果。我希望将最终只有'ltd,plc,group'等公司的所有公司合并,并删除这些公司。
但是,我还需要保留“图像”列数据(如果匹配结果中存在)。所以例如从这个结果我想从第1行简单地'lloyds',但保留第2行的'图像':
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的记录/数组,以及他们从重复数据删除中更新的内容,以便我可以更新我的工作数据库中的公司ID,否则我将在不存在的公司中找到工作。
我怎样才能做到这一点?我需要什么问题?