我试图在SQL中只显示具有路径的URL,例如:
stackoverflow.com/ - 没有路径
stackoverflow.com/abc.html - 没有路径
stackoverflow.com/abc- path
stackoverflow.com/abc/bla/- path
现在在正则表达式的答案是\/\w+$
我知道正则表达式与SQL不兼容,所以我不知道如何检查URL。
这是我试过的:
select * from sites where url like '\/\w+$'
这将检查URL是否包含两个斜杠:
SELECT *
FROM testdata
WHERE url LIKE '%/%/%'
从技术上讲,URL stackoverflow.com/abc.html
和stackoverflow.com/abc
是相同的,你有一个主机名和一个文件名。以上示例仅匹配stackoverflow.com/abc/bla/
。
你可以使用CHARINDEX
:
WITH cte(p) AS (
SELECT 'stackoverflow.com/'
UNION SELECT 'stackoverflow.com/abc.html'
UNION SELECT 'stackoverflow.com/abc'
UNION SELECT 'stackoverflow.com/abc/bla'
)
SELECT *
FROM cte
WHERE CHARINDEX('/', REVERSE(p)) < CHARINDEX('.', REVERSE(p));