本帖最后由 ksaer 于 2013-05-06 18:35:14 编辑

解决方案 »

  1.   

    给LZ个站点
    http://www.cnblogs.com/freespider/archive/2011/09/13/2174386.html
    这里我想就能解决你的问题,保留逗号,这个是可以的
      

  2.   

    select a.name, group_concat(b.id) from A表 a, B表 b where find_in_set(b.cartname, a.cart) 大致如此,未经测试
      

  3.   

    正确写法mysql_connect();
    mysql_select_db('test');
    $sql =<<< SQL
    CREATE TEMPORARY TABLE A 
      select '郑一' as name, '同学,同事' as cart
      union select '刘二', '朋友'
      union select '李三', '同事,朋友'
    SQL;
    mysql_query($sql);$sql =<<< SQL
    CREATE TEMPORARY TABLE B 
      select 1 as id, '同学' as cartname
      union select 2, '朋友'
      union select 3, '同事'
    SQL;
    mysql_query($sql);$sql =<<< SQL
    select a.name, group_concat(b.id) from a, b where find_in_set(b.cartname, a.cart) group by a.name
    SQL;
    $rs = mysql_query($sql);while($r = mysql_fetch_assoc($rs)) $res[] = $r;
    print_r($res);
    Array
    (
        [0] => Array
            (
                [name] => 李三
                [group_concat(b.id)] => 2,3
            )    [1] => Array
            (
                [name] => 刘二
                [group_concat(b.id)] => 2
            )    [2] => Array
            (
                [name] => 郑一
                [group_concat(b.id)] => 1,3
            ))
      

  4.   


    版主  你这代码帮我解决了  不过 要怎么把 A表.cart 修改成B表.id  UPDATE SET 加在哪?
    还有个问题不过没事 我修改下符号就可以了  就是这里用的是[同学,同事]半角,号  我换成&符号就不对了
      

  5.   

    id用储存在cart不就行了么,多的就用字符分隔啊
      

  6.   

      抓狂呀!   现成的代码都还不会用- - ~~ 折腾半天也搞不会     你这个是可以正确列出想要的结果了  可是怎么用修改语句把SQL里的给改换掉