表结构如下 CREATE TABLE `info` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `ReporterName` varchar(50) NOT NULL,
  `ReporterIP` varchar(15) NOT NULL,
  `query` varchar(150) DEFAULT NULL,
  `ItemID` varchar(32) NOT NULL,
  `SellerName` varchar(50) NOT NULL,
  `SellerID` varchar(32) DEFAULT NULL,
  `BucketID` varchar(3) DEFAULT NULL,
  `ReportTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Category` varchar(30) DEFAULT NULL,
  `SpamType` varchar(200) DEFAULT NULL,
  `Detail` varchar(200) DEFAULT NULL,
  `fromsite` varchar(20) DEFAULT NULL,
  `UserType` int(11) DEFAULT NULL,
  `SelledCount` bigint(20) DEFAULT NULL,
  PRIMARY KEY (`id`),
 ) ENGINE=MyISAM  DEFAULT CHARSET=gbk 如何只导出UserType=1的数据,并且只导出前三个字段,也就是id,ReporterName,ReporterIP三个字段

解决方案 »

  1.   

    似乎不行
    mysql -u root -pZWTL -e "SELECT id,ReporterName,ReporterIP from `info` where UserType=1">123.txt;
      

  2.   

    select id,ReporterName,ReporterIP into outfile 'e:\aa.sql' [fileds....] from info where UserType=1
      

  3.   

    mysqldump 可以加参数 -w 来仅导出 UserType=1 的数据,但无法限制字段。你这样的需要,不如直接
    mysql -uroot -p12345 -e "SELECT id,ReporterName,ReporterIP from `info` where UserType=1 INTO OUTFILE  'c:/test/aa.dat'"
      

  4.   

    恩 直接进mysql导出到文件
      

  5.   


    这样导出的是数据,可是我要的是包含insert语句的sql脚本,
    不然我怎么导回到另一个新表中呢
      

  6.   

    你可以使用LOAD DATA来导加表中。
      

  7.   

    你可以mysql -uroot -p12345 -e “select concat('insert into info(id,ReporterName,ReporterIP) values(',id,',\'',ReporterName, '\'',',\'',ReporterIP, '\');') from info UserType=1 INTO OUTFILE 'c:/test/aa.dat'”
      

  8.   

     这个方法可行,是可以只运行select concat('insert into info(id,ReporterName,ReporterIP) values(',id,',\'',ReporterName, '\'',',\'',ReporterIP, '\');') from info  where UserType=1  先看看查询结果,就明白了