2

我看过这个问题,但没有这样问,如果有类似的问题,请链接它。

我正在使用 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 语句,以使每个@slavestring包含@masterstring将是真的?

我试过了

尝试#1:

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

尝试#2:

@masterstring like @slavestring + '%'

他们都没有工作...

4

1 回答 1

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
于 2012-11-22T22:41:38.233 回答