比如我想按照下面的条件把数据输出生成到'E:\\pet.csv,的excel文件
select pet_level,count(pet_level) from pet_db group by pet_level into outfile 'E:\\pet.csv' fields terminated by ', ';使用上面的语句生成的pet。csv,没有列名。。请问怎么输出带列名啊。。那位大大给个sql语句。。如果没sql语句的话,需要添加别的代码的话,给个C,或者C++的代码,不要PHP,的。。谢谢大大。。在线等哦。

解决方案 »

  1.   

    用SELECT INTO 不能加列名,用其它方法吧。
      

  2.   

    C:\Program Files\MySQL\MySQL Server 5.1\bin>mysql -u root -p123 test -e "select * from t1 where id<10" > xxx.txtC:\Program Files\MySQL\MySQL Server 5.1\bin>type xxx.txt
    id      col
    1       1
    2       2
    3       3
    4       4
    5       5
    6       6
    7       7
    8       8
    9       9C:\Program Files\MySQL\MySQL Server 5.1\bin>
      

  3.   

    只有用mysql -u root -p123 test -e "select * from t1 where id <10" > xxx.txt
    这种形式,再用EXCEL处理
      

  4.   

    楼上的。。
     把我这句改下吧。。
    select pet_level,count(pet_level) from pet_db group by pet_level into outfile 'E:\\pet.csv' fields terminated by ', '谢谢你了。。在线等
      

  5.   

    没有直接生成excel,而且带列名的方法么?
      

  6.   


    可以用VB或VBS直接访问MYSQL数据库然后生成XLS文件。 也可以在EXCEL的VBA中访问MYSQL数据库以生成数据。(安装一下MYSQL的ODBC,然后利用ADO方式访问数据库)
      

  7.   

    1.用工具导入 sqlyog
    2.用楼上大侠们的方法导入
    3.存储过程
    insert into tb values(列名,列名1)
    select pet_level,count(pet_level) from pet_db group by pet_level into outfile 'E:\\pet.csv' fields terminated by ', '
    然后
    delete from tb where 
      

  8.   

    哎麻烦以前没用过数据库。。公司突然让我用MFC和mysql做个小软件。。我没想到这辈子会和数据库和mysql有关系。。谁知道。。谢谢各位了。。虽然还不知道怎么办。。
      

  9.   

    你既然已经用MFC来定敢,那简单了,你可以在你的MFC中通过CAPI访问MYSQL数据库,然后在C语言中生成这么个CSV文件。
      

  10.   

    楼上的说具体点哦我会用就用的CAPI访问的MYSQL数据库,但是用的方法是连接数据库后,利用sql生成csv,怎么用C还不晓得。。
      

  11.   


    不是利用SQL生成CSV,是用你的CAPI打开一个记录集,然后循环这个记录集,输出这些记录中的字段到一个文本文件。
    你可以到MYSQL 的 C API 的手册中看一下以下的函数和例子。mysql_connect()  
    mysql_real_query()mysql_fetch_fields()mysql_fetch_row()
    mysql_close()MYSQL_ROW row;
    unsigned int num_fields;
    unsigned int i;num_fields = mysql_num_fields(result);
    while ((row = mysql_fetch_row(result)))
    {
       unsigned long *lengths;
       lengths = mysql_fetch_lengths(result);
       for(i = 0; i < num_fields; i++)
       {
           printf("[%.*s] ", (int) lengths[i], 
                  row[i] ? row[i] : "NULL");
       }
       printf("\n");
    }
    至少C中如果写磁盘文件,这个在C的open 中就已经有了。你可以查你的C的手册。
      

  12.   

    num_fields = mysql_num_fields(result);
    while ((row = mysql_fetch_row(result)))
    {
       unsigned long *lengths;
       lengths = mysql_fetch_lengths(result);
       for(i = 0; i < num_fields; i++)
       {
           printf("[%.*s] ", (int) lengths[i], 
                  row[i] ? row[i] : "NULL");
       }
       printf("\n");
    }
    这个我会就是用C往txt什么的会写。往excel里不会。。
      

  13.   

    你就直接写一个 xxx.csv 的文本文件就行了,不是EXCEL文件。
    CSV只不过是以逗号分隔的一个纯文本文件。