解析PHP SDK-返回值为NULL或未定义的记录

解析PHP SDK-返回值为NULL或未定义的记录,php,null,parse-platform,Php,Null,Parse Platform,我通过Parse PHP SDK存储了一些记录。 在这些字段中有一个日期字段,该字段使用未定义的值初始化 如果我设置了一个日期,然后想“取消设置”,这个值可能会变为实际日期或空值。我正在做的是将其设置为null 问题是,当我想过滤设置日期和所有其他日期时(在我的情况下,未定义值和空值应该相同,即“unset”),我会尝试类似于以下内容的查询过滤器: $query->equalTo("mydatefield", NULL); 奇怪的是,它只返回未定义的值,而不是空值 另一方面,当我使用 $

我通过Parse PHP SDK存储了一些记录。 在这些字段中有一个日期字段,该字段使用未定义的值初始化

如果我设置了一个日期,然后想“取消设置”,这个值可能会变为实际日期或空值。我正在做的是将其设置为null

问题是,当我想过滤设置日期和所有其他日期时(在我的情况下,未定义值和空值应该相同,即“unset”),我会尝试类似于以下内容的查询过滤器:

$query->equalTo("mydatefield", NULL);
奇怪的是,它只返回未定义的值,而不是空值

另一方面,当我使用

$query->notEqualTo("mydatefield", NULL);
所需的记录都返回得很好

你知道如何同时获取空值和未定义值吗


提前感谢。

你说得对,它似乎不适用于PHP库。同样的事情也适用于Javascript库

通过排除非null(或未定义)的值,您可以实现您想要的功能。以下是一个例子:

use Parse\ParseQuery;       

//fetch objectIds of all data that is not null
$query = new ParseQuery("tabledata");
$query = $query -> notEqualTo("mydatefield", null);
$results = $query -> find();
$keys = array();

for ($i=0; $i<count($results); $i++){
    array_push($keys, $results[$i]-> getObjectId());
}

//now fetch all records but the records with the null column
$query2 = new ParseQuery("tabledata");
$query2 = $query2 -> notContainedIn("objectId", $keys);
$results2 = $query2 -> find();
使用Parse\ParseQuery;
//获取所有非空数据的ObjectID
$query=新的ParseQuery(“tabledata”);
$query=$query->notEqualTo(“mydatefield”,null);
$results=$query->find();
$keys=array();
对于($i=0;$i getObjectId());
}
//现在获取除空列记录以外的所有记录
$query2=新的ParseQuery(“tabledata”);
$query2=$query2->notContainedIn(“objectId”,$keys);
$results2=$query2->find();

您可以使用ParseQuery类的
exists
doesNotExist
方法过滤带有空字段的查询

$query->exists("mydatefield");   // returns rows that do not have null value for mydatefield key.

$query->doesNotExist("mydatefield");   // returns rows that have null value for mydatefield key.

谢谢阿比诺!虽然这不是实现我想要的目标的最佳方式,但它在我的情况下确实有效。我希望parse.com团队在将来的版本中会注意到这一点。这只过滤具有未定义值的字段,而不是空字段。在parse中,有null和未定义的值。查询应该是“doesNotExists或equals null”,但我不知道如何标记为“or”。