繁体   English   中英

选择MySQL中列值“相同”的所有行?

[英]Select all rows where the column value is the "same" in MySQL?

所以我有一个表,将 URL 存储在一列中。 由于 URL 的解析和编写方式不同,表中存在重复项。 如何选择具有相同域和 URL 路径的所有行?

我可以选择 URL 完全匹配的重复项,但这不是我想要的。

例子,

# This is a duplicate
https://www.example.com/example1
https://example.com/example1

# Not a duplicate
https://example.com/example2
https://example.com/example3

# This is a duplicate
https://example.com/example2/
https://example.com/example2

您可以使用此删除重复值。

DELETE t1 FROM urls t1
INNER JOIN urls t2 
WHERE 
    t1.id != t2.id AND 
    t1.url = TRIM(TRAILING '/' FROM REPLACE(t2.url, '://www.', '://'));

这是示例网址: https : //dbfiddle.uk/? rdbms = mysql_8.0 & fiddle =792b0a7870b1abdd91f13cd4c608ab6a

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM