首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从mysql读取并在csv文件中写入列wise?

问如何从mysql读取并在csv文件中写入列wise?
EN

Stack Overflow用户
提问于 2015-02-13 07:31:29
回答 3查看 285关注 0票数 0

我在数据库中有不同的表(比如mysql)。我需要从不同的表中提取一些列,并将其写入csv文件中。考虑表1

代码语言:javascript
复制
A 1
B 2
C 3
table 2       table 3
X 7           AB A1
Y 8           BC B2
Z 10          CD C3
U 11          DE D4
V 12          
W 13

我希望在csv文件中从表1、表2编写第1列,从表3编写第1列,使空行为空。

代码语言:javascript
复制
output: 
A,7,AB
B,8.BC
C,10,CD
null,11,DE
null,12,null
null,13,null 

我可以做的基本读写从mysql到csv,需要帮助的逻辑或代码,以获得上述输出。“从'n‘个表数中寻找”n“列数的通用解决方案”。以上就是一个例子。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-02-13 07:59:06

我不知道您是如何读取数据库的,但假设您使用JDBC完成了该操作:

代码语言:javascript
复制
    ResultSet tableAReusltSet= null;
    ResultSet tableBReusltSet= null;
    ResultSet tableCReusltSet= null;
    List<PseudeContainer> container = new ArrayList<>();
    while (tableAReusltSet.next()) { 
        PseudeConteiner ps = new PseudoContainer();
        ps.col1 = tableAReusltSet.getString("ColumnName");
        container.add(ps);
    }

    int i = 0;
    while (tableBReusltSet.next()) { 
        if(container.size() <= i){
             container.add(new PseudeContainer());
        }
        container.get(i).col2 = tableBReusltSet.getString("ColumnName");
    }

    i = 0;
    while (tableBReusltSet.next()) { 
        if(container.size() <= i){
             container.add(new PseudeContainer());
        }
        container.get(i).col2 = tableBReusltSet.getString("ColumnName");
    }

//.现在,您可以使用一个可以编写的集合。

代码语言:javascript
复制
public PseudeContainer {
    String col1 = null;
    String col2 = null;
    String col3 = null;

}

上面应该有用..。还是伪码..。

票数 0
EN

Stack Overflow用户

发布于 2015-02-13 07:58:54

因为您只想要逻辑,这里有一些伪代码,可以帮助您使用任何语言。因为我不知道您是如何导出到csv的,所以我使它非常通用。

代码语言:javascript
复制
arr1 = select column1 from table1;
arr2 = select column2 from table2;
arr3 = select column1 from table3;
max = isBigger(arr1.length, arr2.length);
max = isBigger(max, arr3.length);
for(i=0; i<max; i++)
{
 if(arr1[i]=="") arr1[i]=null;
 if(arr2[i]=="") arr2[i]=null;
 if(arr3[i]=="") arr3[i]=null;
 print arr1[i] + "," + arr2[i] + "," + arr3[i];
}
票数 0
EN

Stack Overflow用户

发布于 2015-02-15 04:59:55

推荐第三方库来处理CSV文件:

Apache Commons CSV

开放CSV

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28494564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档