sql查询时能否查询多个栏目的数据,有数组“9,13,20,22”这是栏目ID

比如select * from book where bookid="9"

想把这些栏目在一个语句中查询出来,并且是栏目参数中有“,”,谢谢

declare @s varchar(100)
set @s='9,13,20,22'
select * from book where charindex(','+bookid+',',','+@s+',')>0

 

如果bookid的类型是int

SQL code
   
   
declare @s varchar ( 100 ) set @s = ' 9,13,20,22 ' select * from book where charindex ( ' , ' + ltrim (bookid) + ' , ' , ' , ' + @s + ' , ' ) > 0 -- 或者 declare @s varchar ( 100 ) set @s = ' 9,13,20,22 ' select * from book where ' , ' + @s + ' , ' like ' %, ' + ltrim (bookid) + ' ,% '
 
 
1.
'9,13,20,22' --> ',9,13,20,22,'
bookid = 9 --> ',9,'

2.
SQL code
      
      
CHARINDEX 返回字符串中指定表达式的起始位置。 语法 CHARINDEX ( expression1 , expression2 [ , start_location ] ) 参数 expression1 一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。 expression2 一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。 start_location 在 expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从 expression2 的起始位置开始搜索。 返回类型 int 注释 如果 expression1 或 expression2 之一属于 Unicode 数据类型( nvarchar nchar )而另一个不属于,则将另一个转换为 Unicode 数据类型。 如果 expression1 或 expression2 之一为 NULL 值,则当数据库兼容级别为 70 或更大时, CHARINDEX 返回 NULL 值。当数据库兼容级别为 65 或更小时, CHARINDEX 仅在 expression1 和 expression2 都为 NULL 时返回 NULL 值。 如果在 expression2 内没有找到 expression1,则 CHARINDEX 返回 0 。 示例 第一个代码示例返回序列"wonderful"在 titles 表的 notes 列中开始的位置。第二个示例使用可选的 start_location 参数从 notes 列的第五个字符开始寻找"wonderful"。第三个示例显示了当 expression2 内找不到 expression1 时的结果集。 USE pubs GO SELECT CHARINDEX ( ' wonderful ' , notes) FROM titles WHERE title_id = ' TC3218 ' GO -- Use the optional start_location parameter to start searching -- for wonderful starting with the fifth character in the notes -- column. USE pubs GO SELECT CHARINDEX ( ' wonderful ' , notes, 5 ) FROM titles WHERE title_id = ' TC3218 ' GO 下面是第一个查询和第二个查询的结果集: -- --------- 46 ( 1 row(s) affected) USE pubs GO SELECT CHARINDEX ( ' wondrous ' , notes) FROM titles WHERE title_id = ' TC3218 ' GO 下面是结果集。 -- --------- 0 ( 1 row(s) affected)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值