在数据库中查找重复字符串

6

我需要找到表中特定字段的字符串在两个或更多位置重复的所有行。

这可以通过MySQL语句完成吗?

编辑

我需要获取每一行,而不仅仅是有多少个重复项的计数。我想能够编辑字段。

2个回答

8

是的,可以试试这样做:

SELECT *
FROM `YourTable`
WHERE `YourColumn` IN (
    SELECT `YourColumn`
    FROM `YourTable`
    GROUP BY `YourColumn`
    HAVING COUNT(*) > 1
)

你的查询导致我的PHPmyadmin冻结了。可能是因为我有7000多行数据。 - Cudos
很奇怪,我在大表上运行良好。也许是其他查询导致了锁定问题? - Richard Fawcett
嗯...我会尝试检查我的设置中是否有任何问题。 - Cudos
这肯定是我的设置问题。使用此查询,其他表正常工作。 - Cudos
@RichardFawcett 对于所选列它有效!所以,感谢您的贡献。您对所选列的行字符串有什么建议吗? - ersks
嘿@ersks,我不确定你所说的“选定列的行字符串”是什么意思。你能澄清一下吗? - Richard Fawcett

5

是的,可以使用GROUP BYHAVING来实现。

SELECT mycolumn, count(*) FROM mytable
group by mycolumn
having count(*) > 1

我需要显示每一行,而不仅仅是计数。我希望能够编辑每一行。 - Cudos
@Cudos,你可以添加其他字段到SELECT中,这样你就可以获取你需要的任何字段。例如:SELECT id, field1, field2, mycolumn, count() FROM mytable group by mycolumn having count() > 1 - ElementalStorm

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