我刚刚开始使用squeryl,还不知道如何编写这样的查询
SELECT ref label
FROM x_table
WHERE ref like x% or lable like x%其中squeryl是来自用户的一些值,特别是我还没有在x中找到与符号%类似的符号,或者我如何使用它。
我的版本:
val products = from(AppDB.productTable) (
s => where ((s.label like value) or (s.ref like value)) select(s)
)不能正常工作。
我从用户那里得到的val value : Option[String]。
发布于 2012-12-27 03:36:15
您可以尝试选择字段,如下所示:
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]类型,那么您可以这样做:
s.label like value.map(_ + "%")发布于 2012-12-28 18:46:48
您可以使用较短的版本:
AppDB.productTable.where ((s.label like value) or (s.ref like value))和选项字段用于可以为空的列
https://stackoverflow.com/questions/14045241
复制相似问题