【发布时间】:2014-02-17 19:41:16
【问题描述】:
我有一个大型的 URL 数据库,并且我有来自尾部斜杠的重复项。我想找到那些以斜杠结尾的重复值,但不是在斜杠后面带有文本的网址,例如http://www.google.com/asdfasdf
CREATE TABLE link_info (
id INT,
url VARCHAR(32)
);
INSERT INTO link_info VALUES
(1, 'http://www.yahoo.com/'),
(2, 'http://www.google.com/'),
(3, 'http://www.google.com/asdfasdf'),
(4, 'http://www.yahoo.com');
我正在尝试选择不带斜杠的重复项,但它选择 http://www.google.com/asdfasdf 作为重复项。
SELECT DISTINCT TRIM(TRAILING '/' FROM url) url
FROM link_info
我希望使用正则表达式,但这不起作用。
SELECT DISTINCT TRIM(TRAILING REGEXP('[/]$') FROM url) url
FROM link_info
【问题讨论】:
-
您是要选择重复项还是获取不同的列表?对于重复项,我认为您想使用
GROUP BY和HAVING COUNT(*) > 1 -
所以想要的输出只有 1 行,yahoo.com,count = 2?不是 100% 清楚您想要的输出是什么。
-
@AgRizza 最初我想同时选择两者,但只返回 1 个重复项也可以。