Swift 解析-使用或和的复合查询?

Swift 解析-使用或和的复合查询?,swift,parse-platform,Swift,Parse Platform,基本上我想做一些类似的事情 SELECT * FROM FriendRequests WHERE (from == user OR to == user) AND status = "accepted" 有一个名为或queryWithSubQueries的方法,它允许我组合两个OR,但我不知道如何在它们和状态查询之间执行AND let statusCheck = FriendRequest.query() statusCheck.whereKey("status", equalTo: Frie

基本上我想做一些类似的事情

SELECT * FROM FriendRequests WHERE (from == user OR to == user) AND status = "accepted"
有一个名为
或queryWithSubQueries
的方法,它允许我组合两个OR,但我不知道如何在它们和状态查询之间执行AND

let statusCheck = FriendRequest.query()
statusCheck.whereKey("status", equalTo: FriendRequest.Status.Accepted.rawValue)

let userCheckOne = FriendRequest.query()
userCheckOne.whereKey("from", equalTo: User.currentUser())

let userCheckTwo = FriendRequest.query()
userCheckOne.whereKey("to", equalTo: User.currentUser())

let userCheck = PFQuery.orQueryWithSubqueries([userCheckOne, userCheckTwo])

// Some how do (userCheck AND statusCheck)

如果您是从SQL的角度来看这个问题,请将
查询更像是一个
联合
语句

您的查询将如下所示:

SELECT *
FROM FriendRequests
WHERE from = user
AND status = "accepted"

UNION

SELECT *
FROM FriendRequests
WHERE to = user
AND status = "accepted"
如您所见,解决方案是简单地将
部分添加到两个查询中:

let userCheckOne = FriendRequest.query()
userCheckOne.whereKey("from", equalTo: User.currentUser())
userCheckOne.whereKey("status", equalTo: FriendRequest.Status.Accepted.rawValue)

let userCheckTwo = FriendRequest.query()
userCheckTwo.whereKey("to", equalTo: User.currentUser())
userCheckTwo.whereKey("status", equalTo: FriendRequest.Status.Accepted.rawValue)

let userCheck = PFQuery.orQueryWithSubqueries([userCheckOne, userCheckTwo])

如果您是从SQL的角度来看这个问题,请将
查询更像是一个
联合
语句

您的查询将如下所示:

SELECT *
FROM FriendRequests
WHERE from = user
AND status = "accepted"

UNION

SELECT *
FROM FriendRequests
WHERE to = user
AND status = "accepted"
如您所见,解决方案是简单地将
部分添加到两个查询中:

let userCheckOne = FriendRequest.query()
userCheckOne.whereKey("from", equalTo: User.currentUser())
userCheckOne.whereKey("status", equalTo: FriendRequest.Status.Accepted.rawValue)

let userCheckTwo = FriendRequest.query()
userCheckTwo.whereKey("to", equalTo: User.currentUser())
userCheckTwo.whereKey("status", equalTo: FriendRequest.Status.Accepted.rawValue)

let userCheck = PFQuery.orQueryWithSubqueries([userCheckOne, userCheckTwo])

如果您是从SQL的角度来看这个问题,请将
查询更像是一个
联合
语句

您的查询将如下所示:

SELECT *
FROM FriendRequests
WHERE from = user
AND status = "accepted"

UNION

SELECT *
FROM FriendRequests
WHERE to = user
AND status = "accepted"
如您所见,解决方案是简单地将
部分添加到两个查询中:

let userCheckOne = FriendRequest.query()
userCheckOne.whereKey("from", equalTo: User.currentUser())
userCheckOne.whereKey("status", equalTo: FriendRequest.Status.Accepted.rawValue)

let userCheckTwo = FriendRequest.query()
userCheckTwo.whereKey("to", equalTo: User.currentUser())
userCheckTwo.whereKey("status", equalTo: FriendRequest.Status.Accepted.rawValue)

let userCheck = PFQuery.orQueryWithSubqueries([userCheckOne, userCheckTwo])

如果您是从SQL的角度来看这个问题,请将
查询更像是一个
联合
语句

您的查询将如下所示:

SELECT *
FROM FriendRequests
WHERE from = user
AND status = "accepted"

UNION

SELECT *
FROM FriendRequests
WHERE to = user
AND status = "accepted"
如您所见,解决方案是简单地将
部分添加到两个查询中:

let userCheckOne = FriendRequest.query()
userCheckOne.whereKey("from", equalTo: User.currentUser())
userCheckOne.whereKey("status", equalTo: FriendRequest.Status.Accepted.rawValue)

let userCheckTwo = FriendRequest.query()
userCheckTwo.whereKey("to", equalTo: User.currentUser())
userCheckTwo.whereKey("status", equalTo: FriendRequest.Status.Accepted.rawValue)

let userCheck = PFQuery.orQueryWithSubqueries([userCheckOne, userCheckTwo])

哦,明白了。我发现也可以使用谓词。我会尝试一下,然后回来。想知道下面的谓词是否有效“status==%@和(from==%@或to==%@)”您如何使用该谓词?使用parse。。请举个例子哦哦,明白了。我发现也可以使用谓词。我会尝试一下,然后回来。想知道下面的谓词是否有效“status==%@和(from==%@或to==%@)”您如何使用该谓词?使用parse。。请举个例子哦哦,明白了。我发现也可以使用谓词。我会尝试一下,然后回来。想知道下面的谓词是否有效“status==%@和(from==%@或to==%@)”您如何使用该谓词?使用parse。。请举个例子哦哦,明白了。我发现也可以使用谓词。我会尝试一下,然后回来。想知道下面的谓词是否有效“status==%@和(from==%@或to==%@)”您如何使用该谓词?使用parse。。请举个例子嗨,我对FriendRequest.Status.Accepted.rawValue很好奇,这是你的代码还是解析表中的东西,还是两者都有?我有同样的问题,如果你能详细说明,那将是伟大的@aryaxt@kareem那只是一个枚举。parse中的值存储为string,在client I上,在名为dfriendrequest的类中有一个名为Status的枚举。可能可以简化为.Accepted.rawValueHi我很好奇FriendRequest.Status.Accepted.rawValueHi,这是您的代码或解析表中的内容还是两者都有?我有同样的问题,如果你能详细说明,那将是伟大的@aryaxt@kareem那只是一个枚举。parse中的值存储为string,在client I上,在名为dfriendrequest的类中有一个名为Status的枚举。可能可以简化为.Accepted.rawValueHi我很好奇FriendRequest.Status.Accepted.rawValueHi,这是您的代码或解析表中的内容还是两者都有?我有同样的问题,如果你能详细说明,那将是伟大的@aryaxt@kareem那只是一个枚举。parse中的值存储为string,在client I上,在名为dfriendrequest的类中有一个名为Status的枚举。可能可以简化为.Accepted.rawValueHi我很好奇FriendRequest.Status.Accepted.rawValueHi,这是您的代码或解析表中的内容还是两者都有?我有同样的问题,如果你能详细说明,那将是伟大的@aryaxt@kareem那只是一个枚举。parse中的值存储为string,在client I上,在名为dfriendrequest的类中有一个名为Status的枚举。可能可以简化为.Accepted.rawValue