簡體   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