【问题标题】:Request couchbase with two where conditions请求带有两个 where 条件的 couchbase
【发布时间】:2021-12-08 07:12:14
【问题描述】:

如何编写一个 couchbase 请求,以便选择第一个条件(如果它已定义)或第二个条件(如果第一个条件未定义)。

我试过类似的东西:

SELECT id FROM auto as a WHERE IFMISSINGORNULL(ARRAY_LENGTH(a.data[0])>1, ARRAY_LENGTH(a.data[1])>1)

在这个请求中,如果定义了 a.data[0],我想检查 a.data[0] 的长度,如果没有定义 a.data[0],我想检查 a.data[0] 的长度。数据[1]。

【问题讨论】:

  • 有什么原因你不能写WHERE (x = true AND foo) OR (x = false AND bar)形式的东西吗?
  • 类似于 ``` SELECT id FROM auto 作为 WHERE (a.data[0] IS NOT NULL AND ARRAY_LENGTH(a.data[0])>1) OR (a.data[0 ] 为空且 ARRAY_LENGTH(a.records[1].changes.update_date)>1) `` ??
  • 那种形式的东西,是的。不过,我不太明白你为什么使用ARRAY_LENGTH。也许最好先发布一个关于您要查询的新问题。

标签: sql nosql couchbase n1ql


【解决方案1】:

条件应如下所示

WHERE ARRAY_LENGTH(IFNULL(a.data[0], a.data[1])) > 1

IFNULL(a.data[0], a.data[1])

  • 如果第一个参数不为空,则返回它
  • 当第一个参数为 NULL 时的第二个参数

【讨论】:

    猜你喜欢
    • 2021-08-11
    • 2023-01-15
    • 2018-12-20
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    相关资源
    最近更新 更多