Like子句在光滑中接受null

时间:2015-06-15 13:19:25

标签: scala slick slick-2.0

val query = for {
 s <- Status if s.code like "%"
} yield (s)

上面的查询不会返回Status.code为null的记录,就像它在SQL中一样。当只有“%”通配符与like子句一起使用时,有没有办法获取具有空值的记录?

1 个答案:

答案 0 :(得分:1)

这是一个SQL事物,您需要使用“column is null”来匹配空值。我想你需要这样的东西:

val query = for {
 s <- Status if s.code like "%" || s.code.isEmpty
} yield (s)

这当然会匹配任何东西,使其毫无用处; - )

<强>更新

这是你想要的事情:

val all = LiteralColumn(1) === LiteralColumn(1)
val query = for {
 s <- Status if filterString.isEmpty all else s.code like s"%$filterString%"
} yield (s)

在这里,无论我输入哪个分支,我都会确保返回一些查询。这有点hacky,我希望Slick有一些内置的快捷方式,但我找不到它。但它读得很好。