【发布时间】:2012-04-28 21:24:24
【问题描述】:
Mssql 有一个函数parseURL。
但我们已将数据库从mssql 移至mysql。
Mysql没有parse url,现在我们需要手动创建parseURL函数。
如何在mysql中创建parse url函数?
这是mssql函数
`
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
`
【问题讨论】:
-
mssql 真的有
parseUrl()函数吗? -
是的,mssql 有 parseurl() 函数。
-
向我们展示 MSDN 上的文档?
-
@vchakoshy 你能证明这一点吗?
Shlwapi.dll中有一个ParseURL()方法,但据我所知 SQL Server 不能直接访问它。 -
@AaronBertrand 我很抱歉这个函数不在 mssql 函数中。我将此添加到问题中
标签: mysql sql-server function stored-procedures parse-url