我正在查询SQL数据库,但由于某种原因,结果项会随机返回。这是我的代码:
for items in searchFriendEmailArrayNew {
let query = table.query(with: NSPredicate(format: "email == '\(items)'"))
query.selectFields = ["isriding"]
query.read { (result, error) in
if let err = error {
print("ERROR ", err)
} else if let items = result?.items {
for item in items {
let theItem = item["isriding"] as! Bool
let newItem = String(theItem)
self.searchFriendIsRidingArray.add(newItem)
loopCount = loopCount+1
if loopCount == self.friendsArray.count {
self.tableView.reloadData()
self.activityIndicator.isHidden = true
self.activityIndicator.stopAnimating()
}
}
}
}
}
searchFriendEmailArrayNew是一个电子邮件地址数组,这样当我查询数据库表时,它会使用电子邮件来查找该用户。数组始终保持一致且顺序相同:
查询总是按此顺序完成。
然后我查询用户的选定字段,在这种情况下,我正在查询'isriding'字段。这个字段是bool返回true或false。
但是,当我进入'for item in items'时,结果会以随机顺序返回。例如,假设user1'正在骑马= true'但所有其他用户都是false,返回的项目可能如下所示:
如果我再次运行代码,它可能如下所示:
任何人都可以建议他们为什么会以随机顺序回来,即使在查询表格时也总是以特定顺序查询。
感谢您的帮助。
答案 0 :(得分:1)
您可能需要在构建查询时指定订单,否则结果的顺序可能与您提供的顺序不同。
可以使用' Order by'来强制执行查询的顺序。条款 该声明。 SQL数据库实际上并不了解什么顺序 你把东西放进去,或者以给定的顺序存储数据。这意味着 你需要告诉SQL你想要这些项目的顺序。
Why do results from a SQL query not come back in the order I expect?