用逗号分隔的字符串,每个逗号分隔的值插入一条数据,修改时如何操作

luyesql 2008-07-18 10:32:43
比如字符串 2,4,6
表里分别有三条记录
2
4
6

当我随意修改字符串时,假如是2,3,4
那表里就成
2
3
4
请问修改时如何修改效率才高呢?谢谢
...全文
403 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
luyesql 2008-07-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sp4 的回复:]
那只有删除再重新添加,否则没有什么好办法,实在要修改那么很麻烦。
[/Quote]
恩,好的.
luyesql 2008-07-18
  • 打赏
  • 举报
回复
如果把记录全部删除,再遍历字符串,重新添加这个方法可行吗?
sp4 2008-07-18
  • 打赏
  • 举报
回复
那只有删除再重新添加,否则没有什么好办法,实在要修改那么很麻烦。

lgxyz 2008-07-18
  • 打赏
  • 举报
回复
select * from T where charindex(','+[FIELD]+',',','+@s+',')>0
luyesql 2008-07-18
  • 打赏
  • 举报
回复
不好意思,我数据里的字段(typeid)不是用逗号分隔的字符串存的.
相反,我是遍历用逗号分隔的字符串,再把值插入数据库的.
即本来字符串是2,4,6 我插入表里是
typeid
2
4
6

现在的问题是,假如我修改了字符串为2,3,4
那表里应该是
typeid
2
3
4
中国风 2008-07-18
  • 打赏
  • 举报
回复
declare @s nvarchar(100)
set @s='2,3,4'
select * from T where ','+@s+',' like '%,'+rtrim(COL)+',%'


select * from T where charindex(','+rtrim(COL)+',',','+@s+',')>0--或用patindex
中国风 2008-07-18
  • 打赏
  • 举报
回复
declare @s nvarchar(100)
set @s='2,3,4'
select * from T where charindex(','+rtrim(COL)+',',@s)>0

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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