这个是我的表的格式,我想以这样的样式查询出来 求各位大神赐教啊,

解决方案 »

  1.   

    这个表是我原本的样式:
    CREATE TABLE `tx` (
      `id` int(11) NOT NULL,
      `server` char(4) DEFAULT NULL,
      `c2` char(4) DEFAULT NULL,
      `c3` int(11) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=gbk;
    INSERT INTO `tx` VALUES ('1', 'A1', '1', '234');
    INSERT INTO `tx` VALUES ('2', 'A1', '2', '34');
    INSERT INTO `tx` VALUES ('3', 'A1', '3', '12');
    INSERT INTO `tx` VALUES ('4', 'A1', '4', '5432');
    INSERT INTO `tx` VALUES ('5', 'A1', '5', '234');
    INSERT INTO `tx` VALUES ('6', 'A2', '1', '123');
    INSERT INTO `tx` VALUES ('7', 'A2', '2', '134');
    INSERT INTO `tx` VALUES ('8', 'A2', '3', '435');
    INSERT INTO `tx` VALUES ('9', 'A2', '4', '234');
    INSERT INTO `tx` VALUES ('10', 'A2', '5', '234');
    INSERT INTO `tx` VALUES ('11', 'A3', '1', '2354');
    INSERT INTO `tx` VALUES ('12', 'A3', '2', '23');
    INSERT INTO `tx` VALUES ('13', 'A3', '3', '234');
    INSERT INTO `tx` VALUES ('14', 'A3', '4', '453');
    INSERT INTO `tx` VALUES ('15', 'A3', '5', '453');
    INSERT INTO `tx` VALUES ('16', 'A4', '1', '435');
    INSERT INTO `tx` VALUES ('17', 'A4', '2', '345');
    INSERT INTO `tx` VALUES ('18', 'A4', '3', '33');
    INSERT INTO `tx` VALUES ('19', 'A4', '4', '53');
    INSERT INTO `tx` VALUES ('20', 'A4', '5', '234');
      

  2.   

    这个是我想要的样式:
    CREATE TABLE `tx1` (
      `id` int(2) DEFAULT NULL,
      `server` varchar(4) DEFAULT NULL,
      `1` int(4) DEFAULT NULL,
      `2` int(4) DEFAULT NULL,
      `3` int(4) DEFAULT NULL,
      `4` int(4) DEFAULT NULL,
      `5` int(4) DEFAULT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=gbk;
    INSERT INTO `tx1` VALUES ('4', 'A4', '435', '345', '33', '53', '243');
    INSERT INTO `tx1` VALUES ('3', 'A3', '2345', '23', '234', '453', '453');
    INSERT INTO `tx1` VALUES ('2', 'A2', '123', '134', '435', '234', '234');
    INSERT INTO `tx1` VALUES ('1', 'A1', '234', '34', '12', '5432', '234');
      

  3.   

    create table temp as select id, server from tx;
    mysqldump -uXXX -pYYY 库名 temp > temp.sql
    mysqldump -uXXX -pYYY 库名 tx1 < temp.sql
      
      

  4.   

    其实也不用这么麻烦, 直接在mysql里做也行:insert into tx2 select id, server from tx;
      

  5.   

    我是想用sql语句进行行转列,但是我一直调不过来,实在是不会了
      

  6.   

    SELECT a.`server`,MAX(IF(a.c2=1,c3,0)) AS `1`,
    MAX(IF(a.c2=2,c3,0)) AS `2`,
    MAX(IF(a.c2=3,c3,0)) AS `3`,
    MAX(IF(a.c2=4,c3,0)) AS `4`,
    MAX(IF(a.c2=5,c3,0)) AS `5`
     FROM `tx`  a GROUP BY a.`server` ORDER BY 1 DESC
      

  7.   

    没看明白问题,不过行转列,要用 select case when.可以百度搜索一下