C# 数组作为 MySQL Select 语句的一部分
本文关键字:语句 一部分 Select MySQL 数组 | 更新日期: 2023-09-27 18:36:52
好的,这是我的方案 - 我想查询本地数据库并将 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 想要完成什么
提前致谢:)
我知道该怎么做的唯一方法是实际传入如下所示的 Guid 表:
string guids = "''" + string.Join("'',''", myArrayList) + "''";
string query = string.format("SELECT * FROM remotetable WHERE NOT id IN ({0})", guids);
在我看来,如果您尝试跟踪新记录,您应该添加一个连续列,然后在本地抓取高于该列 MAX 的所有内容。