创建家电表如下:
CREATE TABLE elecct ( pid int, prop_name VARCHAR(15),vid int, NAME VARCHAR(20));
插入数据表如下   
  insert into elecct(pid,prop_name,vid,NAME) values(11,'手机',3232483,'IPone')
  insert into elecct(pid,prop_name,vid,NAME) values(11,'手机',3232484,'联想')  insert into elecct(pid,prop_name,vid,NAME) values(12,'电脑',3232486,'DELL')
  insert into elecct(pid,prop_name,vid,NAME) values(12,'电脑',3232487,'宏基')  insert into elecct(pid,prop_name,vid,NAME) values(13,'游戏机',3232490,'PS2')
  insert into elecct(pid,prop_name,vid,NAME) values(13,'游戏机',3232489,'XBOX')
现在想用sql语句实现如下效果 ,请高手指点
  11, 手机,((3232483,IPone),(3232484,联想))
  12 ,电脑,((232486,DELL),(3232487,宏基'))
  13 ,游戏机,((3232490,PS2),(3232489,XBOX))
表现形式为数组或者 为两列也可以,比如    11, 手机,(3232483,IPone),(3232484,联想)
  12 ,电脑,(232486,DELL),(3232487,宏基')
  13 ,游戏机,(3232490,PS2),(3232489,XBOX)
其中,手机,电脑,游戏机是不固定的,有可能会出现电风扇,我的目的就是把同一个类别的,合并到一行中去,
比如把都为手机的品牌合并到一行,把电脑的同一个品牌合并到一行

解决方案 »

  1.   

    select pid,prop_name,group_concat(concat('('.vid,NAME,')'))
    from elecct
    group by pid,prop_name
      

  2.   


    mysql> select pid,prop_name,group_concat(concat('(',vid,',',name,')')) from
        -> elecct group by pid,prop_name;
    +------+-----------+--------------------------------------------+
    | pid  | prop_name | group_concat(concat('(',vid,',',name,')')) |
    +------+-----------+--------------------------------------------+
    |   11 | 手机         | (3232483,IPone),(3232484,鑱旀兂)             |
    |   12 | 电脑          | (3232486,DELL),(3232487,瀹忓熀)              |
    |   13 | 游戏机         | (3232490,PS2),(3232489,XBOX)               |
    +------+-----------+--------------------------------------------+
    3 rows in set (0.00 sec)mysql>