【问题标题】:ANY function returns nothing when the database is empty当数据库为空时,ANY 函数不返回任何内容
【发布时间】:2018-07-20 11:10:05
【问题描述】:

我有一个密码查询,它正在查看具有某个电子邮件地址的帐户是否已存在于数据库中。为此,我使用内置的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

【问题讨论】:

    标签: neo4j cypher any


    【解决方案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))
    

    【讨论】:

    • 谢谢,这正是我所需要的
    猜你喜欢
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    • 2018-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-05
    相关资源
    最近更新 更多