用户表有一个agent字段,用来存放用户代理的产品编号。数据用1,2,3,4,5这样的格式存放的。现在我要查询哪
些用户代理了编号为1的产品。sql语句怎么写啊

解决方案 »

  1.   

    1,2,3,4是产品编号。   agent       userid1,2,3,4,5        1   
    2,4              2
    4,5,6,7          3用一条sql语句查询出所有含有4的数据
      

  2.   

    你的表的意思是说,用户一次订够了好几种商品??(所谓一次是指只提交一次表单)
    你也不应该这么建表吧,要是需要加一个数量字段怎么办,你要发货的话,要知道每个商品的个数,时间起点.....
    你放在一起,谁知道???看你的意思用like %4% 只能这样了!
      

  3.   

    FIND_IN_SET(str,strlist) 
    Returns a value 如果字符串 str 在由 N 个子串组成的列表 strlist 中,返回一个 1 到 N 的值。一个字符串列表是由通过字符 “,” 分隔的多个子串组成。如果第一个参数是一个常数字符串,并且第二个参数是一个 SET 列类型,FIND_IN_SET() 函数将被优化为使用位运算!如果 str 在不 strlist 中或者如果 strlist 是一个空串,返回值为 0。如果任何一个参数为 NULL,返回值也是 NULL。如果第一个参数包含一个 “,”,这个函数将完全不能工作: 
    mysql> SELECT FIND_IN_SET('b','a,b,c,d');
            -> 2相信这个对楼主有帮助
      

  4.   

    select * from tbl where find_in_set(4,agent);
      

  5.   

    1,2,3,4是产品编号。   agent       userid1,2,3,4,5        1   
    2,4              2
    4,5,6,7          3这种设计有问题,AGENT字段。