このようなものはありますか?
また、ORのリストを生成していますが、これは動的に行われているため、TLDリストを変更した後に外部生成や再生成する必要はありません。 RegExについて考えるかもしれませんが、長いリストもあります。
一つの拡張は(RIGHT
4文字と速い).asp
で終わるすべてのレコードを取得するために最初のフィルタを使用することで、その後
CREATE TABLE #TLDs(TLD VARCHAR(10));
INSERT INTO #TLDs VALUES('.co.uk'),('.de'),('.fr');
CREATE TABLE #URLs(URL VARCHAR(200));
INSERT INTO #URLs VALUES
('http://www.test1.de')
,('http://www.test2.de/login.asp')
,('http://www.test3.fr/login.other')
,('http://www.test4.co.uk/login.asp')
,('http://www.test5.com')
,('http://www.test6.tv')
,('http://www.test7.asp/login.asp');
DECLARE @filter VARCHAR(MAX)=
STUFF
(
(
SELECT 'OR URL LIKE ''%' + TLD + '/%.asp'' '
FROM #TLDs
FOR XML PATH('')
),1,3,''
)
DECLARE @cmd VARCHAR(MAX)=
'SELECT * FROM #URLs AS u WHERE ' + @filter;
EXEC (@cmd);
DROP TABLE #URLs;
DROP TABLE #TLDs;
結果...唯一のあなたのTLDのためのパターンの検索を行うことができ
http://www.test2.de/login.asp
http://www.test4.co.uk/login.asp
私はこれを正しく理解していますか?自分のTLDや「%.asp」に適合するすべてのURLをフィルタリングしたいですか? – Shnugo
いいえ、スラッシュはURLの区切り文字なので、私は 'www.website.de/login.asp'のような結果を探しています。 – Emmit
ああ、OK ...動的SQLは可能ですか? – Shnugo