我有一些通过Parse PHP SDK存储的记录。 在这些字段中有一个Date字段,它使用未定义的值进行初始化。
在运行中,如果我设置了一个日期,然后想要"取消设置"那么这个值可能会更改为实际日期或空值。它。我正在做的是将其设置为null。
问题在于,当我想要过滤设置日期和所有其他日期时(在我的情况下,未定义和空值都应该相同,即"未设置")我尝试使用类似于以下内容:
$query->equalTo("mydatefield", NULL);
关于它的奇怪之处在于它只返回未定义的值,而不是NULL值。
另一方面,当我使用
时$query->notEqualTo("mydatefield", NULL);
所需的记录都返回正常。
知道如何获得null和undefined值?
提前致谢。
答案 0 :(得分:2)
你是对的,它似乎不适用于PHP库。使用Javascript库也可以正常工作。
您可以通过排除非空(或未定义)的值来完成您想要的任务。这是一个例子:
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();
答案 1 :(得分:-1)
您可以使用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.