SQL SERVER

zhang_zhen1234 2013-05-02 11:12:21
数据库字段中,用户的类型是一串ID组成的字符串如(11,12,30)。显示的结果是
用户名 |类型名称1,类型名称2...|
一般像(11,12,30)这种形式存储的字段怎么处理的?
...全文
120 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
daiyueqiang2045 2013-05-03
  • 打赏
  • 举报
回复
引用 5 楼 zhang_zhen1234 的回复:
[quote=引用 4 楼 daiyueqiang 的回复:] [quote=引用 2 楼 maco_wang 的回复:]
declare @id int set @id=11
select * from tablename where charindex(','+ltrim(@id)+',',','+colname+',')>0
这个是查询某一个类别下的数据。 如果数据结构设计的合理的话,可以使用like '类别%',可以使用索引。 类别的编号如下所示:(编码对应的长度根据实际的业务进行设计) 跟级别(00) 一级1(0000) 二级1(000000) 二级2(000001) 二级3(000002) 一级2(0001) 二级1(000100) 二级2(000101) 二级3(000102)[/quote] 谢谢 我那些类别是用的id啊 我用函数把(1,4,6)。拆成了一个表格了 1 4 6. 但是我不知道怎么和那个用户表关联啊。 用户表结构 用户名,经营类别 张三 1,4,6 [/quote] 如果你已经拆分好了,直接使用in('1','2') 就OK了
seusoftware 2013-05-03
  • 打赏
  • 举报
回复
hey jude, 一般是这种存储方法,用in拼个动态sql declare @s varchar(1000),@ID varchar(100) set @id = '11,12,30' set @s = 'select * from table_name where ID in('+@id+')' exec(@s) 不过不建议用这个方式,做关联的时候非常麻烦,还要拆分字符串。
zhang_zhen1234 2013-05-03
  • 打赏
  • 举报
回复
引用 4 楼 daiyueqiang 的回复:
[quote=引用 2 楼 maco_wang 的回复:]
declare @id int set @id=11
select * from tablename where charindex(','+ltrim(@id)+',',','+colname+',')>0
这个是查询某一个类别下的数据。 如果数据结构设计的合理的话,可以使用like '类别%',可以使用索引。 类别的编号如下所示:(编码对应的长度根据实际的业务进行设计) 跟级别(00) 一级1(0000) 二级1(000000) 二级2(000001) 二级3(000002) 一级2(0001) 二级1(000100) 二级2(000101) 二级3(000102)[/quote] 谢谢 我那些类别是用的id啊 我用函数把(1,4,6)。拆成了一个表格了 1 4 6. 但是我不知道怎么和那个用户表关联啊。 用户表结构 用户名,经营类别 张三 1,4,6
MrYangkang 2013-05-02
  • 打赏
  • 举报
回复
For i As Integer = 0 To dt2.Rows.Count - 1 Dim dtid As String() = dt2.Rows(i)("a074id").ToString.Split(",") Dim dtqty As String() = dt2.Rows(i)("a074idqty").ToString.Split(",") For j As Integer = 0 To dtqty.Length - 1 sqlstr &= " update a074 set foutqty= foutqty - '" & dtqty(j) & "' where mxid = '" & dtid(j) & "' " Next Next
daiyueqiang2045 2013-05-02
  • 打赏
  • 举报
回复
引用 2 楼 maco_wang 的回复:
declare @id int set @id=11
select * from tablename where charindex(','+ltrim(@id)+',',','+colname+',')>0
这个是查询某一个类别下的数据。 如果数据结构设计的合理的话,可以使用like '类别%',可以使用索引。 类别的编号如下所示:(编码对应的长度根据实际的业务进行设计) 跟级别(00) 一级1(0000) 二级1(000000) 二级2(000001) 二级3(000002) 一级2(0001) 二级1(000100) 二级2(000101) 二级3(000102)
daiyueqiang2045 2013-05-02
  • 打赏
  • 举报
回复
1:程序进行分拆数据,然后根据分拆数据进行下一步查询。 2:数据库对值进行分拆,然后根据分拆数据进行下一步查询。
叶子 2013-05-02
  • 打赏
  • 举报
回复
declare @id int set @id=11
select * from tablename where charindex(','+ltrim(@id)+',',','+colname+',')>0

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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