用戶表权限字段A   VARCHARuser1:“2,32,22,11”user2:“15,17”user3:“15,2”user4:“1,16,14”
接下來需要查找权限字符串中出现   2或11或16 的用戶    然后系統給出了查询字符串“2,11,16”结果应该包括:user1  user3   user4能否使用這個系統給出的字符串  找出來正確的結果呢

解决方案 »

  1.   

    LOCATE(substr,str,pos) 返回子串substr在字符串str第一个出现的位置,从位置pos开始。如果substr不是在str里面,返回0。
      

  2.   

    问题说明越详细,回答也会越准确!参见如何提问。(提问的智慧)只好猜你的表结构为
    uid      权限字段A
    user1  | '2,32,22,11' 
    user2  | '15,17' 
    user3  | '15,2' 
    user4  | '1,16,14'已知输入字符串 '2,11,16'没有办法直接用一个SQL语句实现 ,除非你输入字符串固定为固定数目比如三个或以下。
    首先利用你的程序把 '2,11,16' 变成 2 , 11 , 16 三个字符串,然后逐一查找。select * from your Table where concat(',',权限字段A,',') like '%,2,%'
    union 
    select * from your Table where concat(',',权限字段A,',') like '%,11,%'
    union 
    select * from your Table where concat(',',权限字段A,',') like '%,16,%'
      

  3.   

    select *,concat(',',A,',') as x from table where x like '%,2,%' or x like '%,11,%' or x like '%,16,%' ;