我想在一组多个ID中检查ID是否存在。 实施例
如果ID 5出现在多个ID列表中,例如' 1,2,3,4,5'
答案 0 :(得分:1)
使用CHARINDEX返回搜索值的索引。
Declare @MyString varchar(50)
Set @MyString = '1,2,3,4,5'
IF CHARINDEX('5',ContactName) > 0
Begin
Print '5 Exists'
End
Else
Begin
Print '5 Does not exists'
End
答案 1 :(得分:0)
select count(*) FROM table where id = '5';
如果返回超过0表示它存在。
答案 2 :(得分:0)
SELECT column FROM table WHERE CHARINDEX(',5,',(',' + column + ',')) > 0
答案 3 :(得分:0)
如果你在谈论sql这个查询对你有用,如果你什么都没有,那就意味着搜索id不在其他列表中。
SELECT * FROM journal_pulses
WHERE mood_credentials
in(2,27)
答案 4 :(得分:0)
在这种情况下,一个好的解决方案可能是使用前导和尾随逗号存储值,如下:
',1,2,3,4,5,'
因此,即使您存储了一个值,也请将其存储为:
',5,'
这将帮助您查找所需的值:
SELECT column FROM table WHERE column like '%,5,%';
或者
SELECT column FROM table WHERE CHARINDEX(',5,',(',' + column + ',')) > 0
此外,使用此解决方案,您可以唯一标识不同的值,前提是字符串不包含重复值。
因此,很容易识别出5,50和350:
',5,50,150,250,350,450,500,'
我不确定您是否可以更改值的存储方式。请根据问题的背景阅读这个答案 - 作为起点,而不是复制粘贴解决方案。
答案 5 :(得分:0)
我尝试过这样的事情
DECLARE @item VARCHAR(50)
SET @ExpressionToSearch = '23,12'
SET @item = '23'
SELECT COUNT(*) from dbo.Split(@ExpressionToSearch,',')
WHERE ',' + (@ExpressionToSearch) + ','
LIKE '%'+@item +'%'
此方案将返回大于0的输出