检查重复的MySQL行

4
我有一个包含field_onefield_twofield_three的MySQL表。
我想检查field_one是否包含重复值(就像它是唯一的一样)。
如何在MySQL中实现?
谢谢。
3个回答

19

这将显示出在field_one中出现超过一次的值:

select field_one, count(*) as Count
from MyTable
group by field_one
having count(*) > 1

在大型表格中,这并不是非常可行的。操作者必须搜索具有值>1的内容。但公平地说,操作者描述得相当模糊。 - Matthew
1
那我接下来应该使用什么?echo mysql_result($q,0);? - medk
我喜欢它。value字段应该是唯一的,不管怎样?但你也可以选择id。你只会得到许多ID中的一个,但这是一个开始。 - Benjamin Eckstein
@Matthew 在一台好的服务器上运行,650k行表格只需要0.365秒。 - Olav Kokovkin

1
select field_one from tblName where field_one like %'@field_one'%

或者

select field_one from tblName where field_one = @filed_one

那我应该使用什么?echo mysql_result($q,0);? - medk

0

如果您只需要检查一列中的所有值是否唯一,您可以使用以下代码来计算所有唯一值:

select Count(Distinct column) from table

...并将其与该列中所有值的数量进行比较:

select Count(column) from table

在大型表上可能会消耗大量内存。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接