假设表如下 
ID title Pid 
1 湖南 1,2 
2 湖北 2,20,21 
3 广东 3,5 
4 广西 20 
5 浙江 1,2,3 我要根据 pid 来搜索这个表 
比如我要查找pid中有2的 
结果就是湖南、湖北、浙江 
如果是用like结果会将20的也算进去SQl语句 搜索语句
不要说使用pid like '2,%' or pid like '%,2' or pid like '%,2,%' 这样也可能会将pid中20的选上

解决方案 »

  1.   


    select * from tb where ',' + Pid + ',' like '%,2,%'
      

  2.   

    create table tb(ID int,title varchar(10) , Pid varchar(20)) 
    insert into tb values(1 ,'湖南' ,'1,2') 
    insert into tb values(2 ,'湖北' ,'2,20,21') 
    insert into tb values(3 ,'广东' ,'3,5') 
    insert into tb values(4 ,'广西' ,'20') 
    insert into tb values(5 ,'浙江' ,'1,2,3') select * from tb where ',' + Pid + ',' like '%,2,%'drop table tb/*
    ID          title      Pid                  
    ----------- ---------- -------------------- 
    1           湖南         1,2
    2           湖北         2,20,21
    5           浙江         1,2,3(所影响的行数为 3 行)
    */