如何在 MySQL 中添加多个列并删除重复项?
如何制作这样的东西:
ALTER TABLE `people` ADD UNIQUE (`name`, `hair_color`)
这也会从表 people
中删除重复项
,因为我有数据:
`name` | `hair_color`
--------|--------------
'John' | 'brown'
'Paul' | 'brown'
'Paul' | 'brown'
'Paul' | 'gray'
操作后我想在表中有唯一的键,并且只有 2 个保罗(一个是棕色的,一个是灰色的)头发)。
How to make something like this:
ALTER TABLE `people` ADD UNIQUE (`name`, `hair_color`)
which also will remove duplicates from table people
f.e. I have data:
`name` | `hair_color`
--------|--------------
'John' | 'brown'
'Paul' | 'brown'
'Paul' | 'brown'
'Paul' | 'gray'
and after operation I want to have UNIQUE KEY in table and only 2 Pauls (one wtih brown and one with gray hair).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
MySQL对此有一个很好的小技巧。您可以为几乎任何命令添加 IGNORE 前缀,以使其忽略错误并让它“以某种方式”工作:
MySQL has a nice little hack for this. You can prefix pretty much any command with
IGNORE
to make it ignore errors and let it work "some way":只需添加
IGNORE
关键字,它就会在此过程中消除重复项:Just add the
IGNORE
keyword and it'll get rid of duplicates in the process:没有任何单一操作可以做到这一点。您需要先删除重复项,然后添加 UNIQUE 约束执行此操作的一般方法(如果您的表不是太大):
There is no single operation to do that. You need to first delete the duplicates and then you can add the UNIQUE constraintThe general approach to do this (if your table is not too big):