mysql - 查找 "part"重复内容

标签 mysql sql

如何找到“部分”重复内容? 我的链接没有正确更新,我留下了两个相似的链接,而不是一个,其中只有子域不同。

例如:

link1: domain-1.com/file_path
links2 domain-2.com/file_path

我想查找 file 列中“file_path”重复的所有链接。

我尝试过的:

SELECT file, COUNT( * ) c
FROM my_table
GROUP BY file HAVING c >1

最佳答案

试试这个:

SELECT COUNT(SUBSTRING_INDEX(file, '.com', -1)) as "c", 
SUBSTRING_INDEX(file, '.com', -1) as "f" 
FROM mytable 
GROUP BY f HAVING c > 1

其中 f 是重复的文件名,c 是出现的次数。

要获取所有链接的列表,您可以尝试:

    SELECT m.file from mytable as "m" 
    WHERE SUBSTRING_INDEX(m.file, '.com', -1) IN (
        SELECT SUBSTRING_INDEX(m2.file, '.com', -1) as "f" 
        FROM mytable as "m2"
        GROUP BY f HAVING COUNT(SUBSTRING_INDEX(m2.file, '.com', -1)) > 1
        )

关于mysql - 查找 "part"重复内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20409638/

相关文章:

php - Laravel Route 无法工作错误是尝试获取非对象的属性

mysql - 优化查询以返回行数

mysql - 我在调用另一个存储过程时遇到困难

mysql : select a "rollback" query (visualizing the rollback query)

java - 结果集 -> XLS

sql - 如何在 SQL Server 中使用变量指定文件组

mysql - InnoDB/MySQL - 新事务在 SELECT 上使用旧数据而不是返回更新后的数据

mysql - 从mysql在jsp中显示img

php - 使用codeigniter更新mysql数据库中的多个选择值

MySQL - 根据连接表列值更新列值