2013-11-28 55 views
0

我有以下查詢:SQL服務器:CHARINDEX返回錯誤的索引

SELECT 
    substring(Content, charindex(N'<img src=''http://tex.', Content), 
         charindex(N'class=''latex-formula''>', Content)+22) as Img 
FROM 
    [Scyk].[dbo].[Posts] 
WHERE 
    content LIKE '%<img src=''http://tex.%' 

現在,我希望它給我所有<img>標籤,我在數據庫中。但是,相反,它返回是這樣的:

<img src='http://tex.z-dn.net/?f=x%3Dlog_%7B%5Csqrt%7B2%7D%7D64' id='TexFormula' onerror="texError(this)" title='x=log_{\sqrt{2}}64' alt='x=log_{\sqrt{2}}64' align='absmiddle' class='latex-formula'> to:</p><p>a) 

凡字符串的結尾結束隨機,也可以是幾個字符太多,或者也可以是大量的人物太多了。我的查詢出了什麼問題?

回答

2

我認爲substring()的第三個參數是你想要提取的部分的長度,而不是結束索引。你將不得不從第二個減去第一個charindex來獲得長度。

+0

哦。我想你是對的,馬上就去檢查一下,謝謝! – ojek

+0

是的,就是這樣,儘快接受你的答案。再次感謝! – ojek

+0

非常好。很高興我能幫上忙。 – Snorre

0

第三個參數是長度不是索引。