val Users = TableQuery[User]
Users.filter(_.age === 18 or _.age is null)
如何用光滑实现上述查询?
预期的SQL
select * from user where age = 18 or age is null
答案 0 :(得分:2)
我不确定基于过滤器的查询,但For Comprehension将为您提供您正在寻找的内容:
val forCol = for {
u <- Users if u.username === "Damiya" || u.username === "OtherDamiya"
} yield u
假设用户的标准表定义
,将生成以下查询select x2."id", x2."username", x2."first_name", x2."last_name", x2."email", x2."password"
from "users" x2
where (x2."username" = 'Damiya') or (x2."username" = 'OtherDamiya')
我发现for-comprehensions是使用光滑的最简单方法,因为你可以轻松地利用连接等等。
希望有所帮助!
答案 1 :(得分:1)
Slick尽可能使用Scala语法。使用||
代替or
。
答案 2 :(得分:1)
val Users = TableQuery[User]
Users.filter(m => ((m.age is 18) || (m.age isNull)))