问一查询语句,单值在字符串中的查

osborne 2003-05-06 09:03:35
字段id, 数值型,
字段typeid,varchar(100) ,值为多个id的值,以逗号相隔,形式如:1,2,3,4

要做id 是否存在于typeid里的查询。

立即结分!
...全文
22 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
osborne 2003-05-06
  • 打赏
  • 举报
回复
我觉的teaism() 方法不错,也正确,感谢以上各位。
osborne 2003-05-06
  • 打赏
  • 举报
回复
caiyunxia(monkey)的可以,但性能是否会影响很大?
yoki 2003-05-06
  • 打赏
  • 举报
回复
用caiyunxia(monkey) 的吧
yoki 2003-05-06
  • 打赏
  • 举报
回复
忘记加逗号了
caiyunxia 2003-05-06
  • 打赏
  • 举报
回复
varchar不会有空格
mjhnet 2003-05-06
  • 打赏
  • 举报
回复
楼上的忘记考虑类型转换时产生的空格了
caiyunxia 2003-05-06
  • 打赏
  • 举报
回复
select * from table
where typeid like '%,'+cast(id as varchar) +'%' or like '%'+cast(id as varchar) +',%' or typeid=cast(id as varchar)

如果不存在1,11,2的话,yoki(小马哥) 的可以
teaism 2003-05-06
  • 打赏
  • 举报
回复
id值若大于10,用 yoki的不能得到正确结果.
要这样:
select * from table1 where charindex(','+rtrim(id)+',',','+typeid+',')>0
caiyunxia 2003-05-06
  • 打赏
  • 举报
回复
select * from table
where typeid like '%,'+cast(id as varchar) +'%' or like '%'+cast(id as varchar) +',%'
mjhnet 2003-05-06
  • 打赏
  • 举报
回复
select * from 表 where charindex(replace(cast(id as char(6)),' ',''),typeid) = 1

yoki 2003-05-06
  • 打赏
  • 举报
回复
select * from table1 where typeid like '%'+cast(id as varchar) +'%'

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧