首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >squeryl查询中的模式匹配

squeryl查询中的模式匹配
EN

Stack Overflow用户
提问于 2012-12-27 03:27:18
回答 2查看 845关注 0票数 1

我刚刚开始使用squeryl,还不知道如何编写这样的查询

代码语言:javascript
复制
SELECT ref label 
FROM x_table 
WHERE ref like x% or lable like x%

其中squeryl是来自用户的一些值,特别是我还没有在x中找到与符号%类似的符号,或者我如何使用它。

我的版本:

代码语言:javascript
复制
val products = from(AppDB.productTable) (
    s => where ((s.label like value) or (s.ref like value))  select(s)
)

不能正常工作。

我从用户那里得到的val value : Option[String]

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-27 03:36:15

您可以尝试选择字段,如下所示:

代码语言:javascript
复制
val products = from(AppDB.productTable) (s => 
  where ((Some(s.label) like value) or (Some(s.ref) like value)) 
  select(s))

这将在查询将OptionString与OptionString进行比较时编译。Squeryl将在内部处理选项状态。

如果您只是想将通配符添加到要比较的内容中,假设like子句的两端都是Option[String]类型,那么您可以这样做:

代码语言:javascript
复制
s.label like value.map(_ + "%")
票数 1
EN

Stack Overflow用户

发布于 2012-12-28 18:46:48

您可以使用较短的版本:

代码语言:javascript
复制
AppDB.productTable.where ((s.label like value) or (s.ref like value))

和选项字段用于可以为空的列

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14045241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档