0

我想通过 IN 子句和 LIKE 在 sql express 中选择一些数据,但没有返回行。我的代码在这里:

SELECT        PointId, PointTitleId, PointTitleName, PointTitleContentText
FROM          PointsTitlesData
WHERE        (PointTitleContentText LIKE '%' + @SearchingClause + '%') 
             AND (PointId IN ('2','3'))

上面的代码不返回任何数据,但是当我只使用 LIKE 代码返回数据时。

SELECT        PointId, PointTitleId, PointTitleName, PointTitleContentText
FROM          PointsTitlesData
WHERE        (PointTitleContentText LIKE '%' + @SearchingClause + '%')

如何同时使用 IN 和 LIKE?谢谢。

4

2 回答 2

1

我尝试使用下面的脚本重新创建您的场景

Declare @SearchingClause nvarchar(20);

Create table PointsTitlesData (Pointid int, PointTitleContentText nvarchar(20));

insert into PointsTitlesData (Pointid, PointTitleContentText)
values ( 1, 'aaamypoint1aaa'), (2, 'bbbmypoint2bbb'),(3,'cccmypoint3ccc');

Set @SearchingClause = 'mypoint2';

SELECT        PointId, PointTitleContentText 
FROM          PointsTitlesData 
WHERE        (PointTitleContentText LIKE '%' + @SearchingClause + '%')  
         AND (PointId IN ('2','3')) 

-- above code don't return any data but when i use only LIKE code return data.

SELECT        PointId, PointTitleContentText 
FROM          PointsTitlesData 
WHERE        (PointTitleContentText LIKE '%' + @SearchingClause + '%') 

我得到了两个查询的结果,所以看起来你有数据问题。你有没有尝试过

SELECT PointId from PointsTitlesData where ((PointId = 2) or (PointId = 3))

检查数据是否存在。

问候裘德

于 2012-07-11T16:48:09.553 回答
0

可能会删除引号:

'2','3' 应该是 2,3

于 2012-07-11T12:06:21.293 回答