当前位置: 首页 > 知识库问答 >
问题:

为什么我的查询结果会随机返回?

吴升
2023-03-14

我正在查询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是一个电子邮件地址数组,因此当我查询数据库表时,它会使用电子邮件来查找该用户。数组始终保持一致且顺序相同:

  • user1@email.com

查询总是按照这个顺序进行的。

然后,我查询用户的所选字段,在本例中,我查询的是“isriding”字段。此字段是返回true或false的布尔值。

然而,当我进入“for item in items”时,结果以随机顺序返回。例如,假设user1'is riding=true',但所有其他用户都为false,则返回的项目可能如下所示:

  • isriding false
  • isriding false
  • isriding true
  • isriding false

如果我再次运行代码,它可能如下所示:

  • isriding true

有人能告诉我们为什么他们会以随机顺序返回,即使在查询表时,它总是以特定的顺序进行查询。

感谢任何帮助。

共有1个答案

公羊雅达
2023-03-14

您可能需要在构建查询时指定一个顺序,否则结果的顺序可能不会与您提供的顺序相同。

可以通过在语句中使用“ORDERBY”子句来强制查询的顺序。SQL数据库实际上并不了解您将数据放入的顺序,也不了解您将数据按给定顺序存储的顺序。这意味着您需要告诉SQL项目的顺序。

为什么SQL查询的结果没有按照我期望的顺序返回?

 类似资料:
  • 问题内容: 我有一堆应聘者,他们有一些或多个工作,每个人都在公司工作,并且使用了一些技能。 坏的ascii艺术如下: 这是我的数据库: 。 。 。 。 这是我对查询的尝试(请注意,我打算将通配符更改为字段名称;我只是想使某些功能生效): HediSql说 查询出了什么问题?我希望从不良的ascii艺术中可以清楚地知道我要达到的目标。 (此外,它对我连接表的顺序是否有任何速度差异?我将担心新的MyS

  • 我有以下表格结构: 1-课程(course_id、course_nam、语言、course_price、create_date、average_rating、course_description、certifica_price、course_creator_id) 2-学生(学生证、钱包) 3-折扣(折扣id、折扣课程id、允许的许可课程id、开始日期、结束日期、百分比) 4-报名(student

  • 如果在表中插入了项,然后我编写了一个查询,例如,为什么结果不是按照我期望的顺序?

  • 当我执行普通Select时,返回正确的结果,但当我执行Select for DB uptime时,它始终返回相同的第一个结果。我确实检查了Postgres日志,我看到select被执行了。

  • 我使用JavaScript有这个条件,我有两个文本框,我将在其中比较输入(输入是数字)。条件是当textbox 2小于textbox 1时,它将显示一条警告消息,说明textbox 2必须大于textbox 2。所以当输入是这样的时候 为什么当它将2与9进行比较时,它不会发出任何警报? 以下是我的情况: