数据库中的表有两列:ID 和 Value
在我的项目中,字典中还有另一个数据,键是 ID,值是 Value。
我想得到差异:字典中的数据和数据库中没有的数据。如果这两个数据都在数据库中,我可以使用 SQL 命令“Except”或“Not Exist”来获得如下图所示的差异。
最好的方法是什么?
我使用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/