請嘗試以下查詢與查詢字符串名稱作爲參數返回查詢字符串值:
declare @url nvarchar(max) = 'mypage.php?name=This is test&address=Test Address&phone=+9779854125896'
declare @param nvarchar(max)='phone'
SELECT
(CASE WHEN CHARINDEX('&', v)>0 THEN SUBSTRING(v, 0, CHARINDEX('&', v))
ELSE V END)
FROM(
SELECT SUBSTRING(@url, CHARINDEX(@param+'=', @url)+LEN(@param)+1, len(@url)) v
WHERE CHARINDEX('&'[email protected]+'=', REPLACE(@url, '?', '&'))>0
)x
對於改變現有的查詢字符串的值,請嘗試:
declare @url nvarchar(max) = 'mypage.php?name=This is test&address=Test Address&phone=+9779854125896'
declare @param nvarchar(max)='name'
declare @NewValu nvarchar(max)='Test'
SELECT
REPLACE(@url, Ch+vv, [email protected])
FROM(
SELECT
(CASE WHEN CHARINDEX('&', v)>0 then SUBSTRING(v, 0, CHARINDEX('&', v))
ELSE V END) vv,
(CASE WHEN CHARINDEX('?'[email protected]+'=', @url)>0
THEN '?'[email protected]+'='
ELSE '&'[email protected]+'=' END) Ch
FROM(
SELECT SUBSTRING(@url, CHARINDEX(@param+'=', @url)+LEN(@param)+1, len(@url)) v
WHERE CHARINDEX('&'[email protected]+'=', REPLACE(@url, '?', '&'))>0
)x
)xx
我明白你需要但你有什麼問題? –
實際上,我需要創建一個觸發器來更新包含url的列並對url的特定參數進行編碼,因此要編碼該特定參數,首先我需要提取參數值 – hsuk
解析URL真的不是一件好事嘗試使用T-SQL。可以訪問.NET框架的CLR函數可以使其可行。 –