2012-11-22 128 views
2

我看過這個問題,但沒有這樣問,如果有問題請連接它。T-sql比較兩個變量,看看其他人是否擁有第一個

我正在使用T-SQL,並正在編寫存儲過程。

所以我有一個@masterstring假設

'www.apple.com' 

@slavestring

'www.apple.com/subdirectory' 

我用下面的代碼,看看我是否應該行添加到數據庫中。

我想要做的是向數據庫添加行,如果它通過這個條款。

IF NOT EXISTS (SELECT ranking_date, ranking_keyword, ranking_id_doman 
       FROM [dbo].[t_ranking] 
       WHERE ranking_id_doman = @domanID 
       AND ranking_keyword = @keyword 
       AND ranking_searchesincluded = @searchesincluded) 
       AND @masterstring like @slavestring +'%' 

@masterstring停留在整個過程中是相同的,但每一次插入我做@slavestring變化。

問題
如何編寫AND語句以便每個包含@masterstring@slavestring都爲真?

我試圖與

嘗試#1:

AND @masterstring like '%' + @slavestring + '%' 

嘗試#2:

@masterstring like @slavestring + '%' 

他們沒有工作...

回答

1

您可以使用SUBSTRINGLEN這樣做的功能:

IF NOT EXISTS (SELECT ranking_date, ranking_keyword, ranking_id_doman 
       FROM [dbo].[t_ranking] 
       WHERE ranking_id_doman = @domanID 
       AND ranking_keyword = @keyword 
       AND ranking_searchesincluded = @searchesincluded) 
       AND SUBSTRING(@slavestring, 1, LEN(@masterstring)) = @masterstring 
+0

優雅的解決方案!非常感謝... !!! – 8bitcat

相關問題