C#Array作为MySQL Select Statement的一部分?

时间:2012-06-11 13:41:35

标签: c# mysql arrays

好的继承我的场景 - 我想查询本地数据库并将GUID选择查询的结果存储到数组中。

然后我想查询远程服务器以返回显示基本上任何新记录的结果集

这是查询,但显然这只适用于同一台服务器。

SELECT  *
FROM    remotetable remote
WHERE   NOT EXISTS
        (
        SELECT  1
        FROM    localtable local
        WHERE   local.guid = remote.guid
        ) 

并将此查询的结果插入到我的本地数据库中以进行合并。

所以它会像

ArrayList myArrayList = new ArrayList();
OdbcConnection local = new OdbcConnection("DSN=local");
local.Open();
OdbcCommand guidSelect = new OdbcCommand("SELECT GUID from localtable",local);
OdbcDataReader DbReader = guidSelect.ExecuteReader();
while (DbReader.Read())
{
String guid = (string)DbReader[0];
myArrayList.Add(guid);
}
local.Close();
OdbcConnection local = new OdbcConnection("DSN=remote");
"SELECT * FROM remotetable remote WHERE NOT EXISTS (SELECT  1 FROM"+ myArrayList() +" local       WHERE   local.guid = remote.guid) 

显然这不会按原样运作,但它应该概括一下id想要完成什么

提前感谢:)

1 个答案:

答案 0 :(得分:1)

我知道如何做到这一点的唯一方法是实际传递Guids表,如下所示:

string guids = "''" + string.Join("'',''", myArrayList) + "''"; 
string query = string.format("SELECT * FROM remotetable WHERE NOT id IN ({0})", guids);

在我看来,如果您正在尝试跟踪新记录,您应该只添加一个连续列,然后只获取高于本地该列的MAX的所有内容。