2012-04-17 8 views
1

Mssqlの機能はparseURLです。
しかし、我々はmssqlからmysqlにデータベースを移動しました。mysqlでurlを解析する方法は?

Mysqlにはparse urlがありません。次に、parseURL関数を手動で作成する必要があります。

parse urlの作成方法はmysqlにありますか?

これは

`

SET QUOTED_IDENTIFIER ON 
SET ANSI_NULLS ON 
GO 
CREATE  FUNCTION [dbo].[parseURL] (@strURL varchar(1000)) 
RETURNS varchar(1000) 
AS 
BEGIN 
IF CHARINDEX('http://',@strURL) > 0 OR CHARINDEX('https://',@strURL) > 0 
-- Ghetto-tastic 
SELECT @strURL = REPLACE(@strURL,'https://','') 
SELECT @strURL = REPLACE(@strURL,'http://','') 
SELECT @strURL = REPLACE(@strURL,'www','') 
-- Remove everything after "/" if one exists 
IF CHARINDEX('/',@strURL) > 0 (SELECT @strURL = LEFT(@strURL,CHARINDEX('/',@strURL)-1)) 

-- Optional: Remove subdomains but differentiate between www.google.com and www.google.com.au 
IF (LEN(@strURL)LEN(REPLACE(@strURL,'.','')))/LEN('.') < 3 - if there are less than 3 periods 
SELECT @strURL = PARSENAME(@strURL,2) + '.' + PARSENAME(@strURL,1) 
ELSE -- It's likely a google.co.uk, or google.com.au 
SELECT @strURL = PARSENAME(@strURL,3) + '.' + PARSENAME(@strURL,2) + '.' + PARSENAME(@strURL,1) 
RETURN @strURL 
END 
GO 

`

+0

mssqlは本当に 'parseUrl()'関数を持っていますか? – Widor

+0

うん、mssqlにはparseurl()関数があります。 –

+2

MSDNのドキュメントを表示しますか? – Widor

答えて

4

SQL ServerはどちらかparseURLと呼ばれる機能を持っていませんMSSQL機能です。あなたはこの関数を呼び出しているところはどこでも、実行します。

EXEC sp_helptext 'parseURL'; 

を私達に関数の定義を示している場合、我々はあなたがそれを翻訳し、MySQLの同等の機能を作成することができます。

+0

感謝のアーロン、私は質問にこれを追加 –

関連する問題