我想通过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? 感谢。
答案 0 :(得分: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))
检查数据是否存在。
此致 犹大书
答案 1 :(得分:0)
可能会删除引号:
'2','3'应为2,3