sql - 获取 Swift 中的数据和数据库中的数据的差异

标签 sql swift sqlite dictionary

数据库中的表有两列:ID 和 Value

在我的项目中,字典中还有另一个数据,键是 ID,值是 Value。

我想得到差异:字典中的数据和数据库中没有的数据。如果这两个数据都在数据库中,我可以使用 SQL 命令“Except”或“Not Exist”来获得如下图所示的差异。 enter image description here

最好的方法是什么?

我使用SQLiteDB查询的结果是一个像这样的字典:

[[“ID”:“id1”,“值”:“val1”],[“ID”:“id2”,“值”:“val2”],...]

另请注意,在比较这两个数据(字典和数据库中的数据)时,应考虑两列。

最佳答案

// here we get intersection of new data and data we have
let intersection = dataSet1.filtered { data in dataSet2.contains(where: { $0.id == data.id })}
// delete elements from dataSet1 which belongs to intersection
let dataSet1MinusDataSet2 = dataSet1.filter { data in intersection.contains(where: { data.id == $0.id })}

我在这里编写的代码没有任何 Xcode,因此语法错误是可能的,但我想你会明白的

关于sql - 获取 Swift 中的数据和数据库中的数据的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47072084/

相关文章:

python - 如何通过索引将数组元素插入到 SQLite 表中?

mysql - 仅显示来自 2 个查询的相同结果

ios - 运行第二个单元测试时核心数据实体名称为零

c# - 处理器架构与 SQLite Nuget 包和任何 CPU Web 项目不匹配

ios - 向用户主屏幕添加按钮

swift - 在文本字段中输入时保存最后一个字母

java - SQLiteJDBC 和 PreparedStatement 使用 pragma table_info

c# - 在数据库应用程序中处理 SqlExceptions 的推荐方法

mysql - SQL中的第N个最大薪水查询

mysql - SQL 查询从消息中检索对话?