val query = for {
s <- Status if s.code like "%"
} yield (s)
上面的查询不会返回Status.code为null的记录,就像它在SQL中一样。当只有“%”通配符与like子句一起使用时,有没有办法获取具有空值的记录?
答案 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有一些内置的快捷方式,但我找不到它。但它读得很好。