我有一个密码查询,该查询旨在查看数据库中是否已存在具有特定电子邮件地址的帐户。为此,我使用内置的ANY
函数:
MATCH (a:Account)
RETURN ANY(x IN a.email WHERE x='test@test.test') AS exists
由于这是一个开发数据库,因此在对数据结构进行重大更改导致数据库为空时,有时会删除测试记录。我遇到的问题是,上面显示的查询既不返回true
也不返回false
,而当数据库为空时它什么也不返回。这是有问题的,因为此查询是由使用graph-aware
库的php脚本调用的,并且当我运行getRecord()
时它会返回错误,因为该函数未返回任何内容。
如果数据库为空,是否有一种方法可以使ANY
函数返回false
。
答案 0 :(得分:1)
1)可以简化密码查询:
MATCH (a:Account) WHERE 'test@test.test' IN a.email
RETURN COUNT(a) > 0 AS exists
2)使用驱动程序功能:
$result = $client->run('
MATCH (a:Account) WHERE \'test@test.test\' IN a.email
RETURN COUNT(a) > 0 AS exists
')
var_dump($result->size() && $result->getRecord())
// or .
var_dump($result->firstRecordOrDefault(false))