一个商城,商品表的字段A,该字段下储存了多个数据,比如说颜色、尺寸。颜色可能是多个、尺寸也可能是多个。
该字段的值如下:a:1,2,3;b:4,5,6;
说明下,a表示颜色、1,2,3表示值,同样的b表示尺寸,4,5,6表示值。我现在要筛选,比如说,我要显示颜色值为3的。怎么办?怎么筛选?(PS:C#、数据库为MSSQL)各位有嘛主意和想法的还请指点一二,非常感谢哈。

解决方案 »

  1.   

    用sql语句啊,select * from 表名 where a=3
      

  2.   

    保存的时候有规律吗
    是按顺序保存的话先查出这个字段,然后用split(";")拆分成字符串数组,这样一个字符串就对应一项数据了
    然后对每个字符串再用split(",")拆分出里面的数据
      

  3.   

    create table test
    (f1 varchar(100) not null)insert into test values('a:1,2,3;b:4,5,6;')
    insert into test values('a:1,2;b:4,5,6;')
    insert into test values('a:2,3;b:5,6;')select  * from test where charindex('3',f1)>0
    drop table test
      

  4.   

    楼上的没法区分33, 13
    被查找的或者在a的头,或者在a尾,或者在a中间对这3种情况用dbo.RegexMatch正则表达来查询.where dbo.RegexMatch(A, N'.+a:3,.+')=0
    OR dbo.RegexMatch(A, N'.+a:.+,3;.+')=0
    OR dbo.RegexMatch(A, N'.+a:.+,3,.+')=0当然在a头的用LIKE也可以
      

  5.   

    数据取出来再用分拆吧,split(",")