我正在使用幻影dsl库来执行scylladb操作。现在,我试图将“where”子句与“or”子句结合起来,但它不起作用。
db.object
.select
.where(_.businessEmail eqs "abc@gmail.com")
.or(_.homeEmail eqs "abc@gmail.com")
.or(_.additionalEmail eqs "abc@gmail.com")
.fetch()
错误:
value or is not a member of com.outworkers.phantom.builder.query.SelectQuery[com.outworkers.phantom.builder.Unlimited,com.outworkers.phantom.builder.Unordered,com.outworkers.phantom.builder.Unspecified,com.outworkers.phantom.builder.Chainned,shapeless.HNil]
possible cause: maybe a semicolon is missing before `value or`?
.or(_.homeEmail eqs "abc@gmail.com")
如何使用“or”子句?
1条答案
按热度按时间bqucvtff1#
SelectQuery的where方法再次返回
SelectQuery
,这允许您调用和方法,该方法将被转换为WHERE
子句中的AND
运算符。如果你查看SelectQuery
的方法,你不会发现任何一个方法允许在WHERE
子句中使用OR
运算符,因为OR operator is supported in ScyllaDB。在official docs of ScyllaDB中,您还将看到select语句没有
OR
运算符,select statement in CQL也是如此。在repo of ScyllaDB到Add basic support for the logical OR operator in CQL中存在一个未决问题。不确定是否会添加到phantom,因为知道最后一次提交是on Aug 16, 2021。