示例数据:
fold/build
目前,我所做的是返回一个已过滤的网址,该网址在' /'之后删除了任何内容。
Integer
输出结果现在是
[{url: bing.com},
{url: bing.com/search?q=test},
{url: rt.com/test}]
我想要做的是立即删除重复,这意味着它只会返回SELECT url,
CASE WHEN LOCATE('/', url) THEN LEFT(url, LOCATE('/', url) - 1)
ELSE url END AS editedUrl
FROM testTable;
和url[0] = bing.com
url[1] = bing.com
url[2] = rt.com
,我尝试这样做
url[0]
但是,它会根据实际值而非过滤后的值来比较网址。
请协助, 感谢。
答案 0 :(得分:1)
您必须按编辑的网址进行分组:
SELECT MIN(url),
CASE
WHEN LOCATE('/', url) THEN LEFT(url, LOCATE('/', url) - 1)
ELSE url
END AS editedUrl
FROM testTable
GROUP BY editedUrl
如果你只想要一个独特的editUrl:
SELECT DISTINCT
CASE
WHEN LOCATE('/', url) THEN LEFT(url, LOCATE('/', url) - 1)
ELSE url
END AS editedUrl
FROM testTable
答案 1 :(得分:0)
尝试使用group by:
SELECT url,
CASE WHEN LOCATE('/', url) THEN LEFT(url, LOCATE('/', url) - 1)
ELSE url END AS editedUrl
FROM testTable group by url;
答案 2 :(得分:0)
如果您使用COLUMN上的选项IGNORE设置唯一键,您可以自动删除一个或多个COLUMNS中的重复项,其中必须是唯一的,如下所示:
一个栏目
ALTER IGNORE TABLE yourTable
ADD UNIQUE KEY idx_name (yourField);
两个COLUMN
ALTER IGNORE TABLE yourTable
ADD UNIQUE KEY idx_name (yourField,nextField);
因此您可以生成一个新的COLUM来存储短URL,之后您可以设置删除重复的键