よく忘れるのでメモ。slickのバージョンは1.0.1
in
サンプル
// typesを引数で貰ったとして
val query = (for {
log <- Query(XXXLogTable) if (log.type inSet (types.flatMap(t => Seq(t.code))))
} yield (log.id)).list
count
count
サンプル
val c = (for {
log <- Query(XXXLogTable) if (log.type inSet (types.flatMap(t => Seq(t.code))))
} yield(log.id.count)).first
生成されたSQL
select count(x2.`id`) from `xxx_log` x2 where x2.`type` in (0, 1)
ただ、
method count in class ColumnExtensionMethods is deprecated: Use Query.count instead
とのことなので、やってみる。
Query.length
サンプル
val q = Query(XXXLogTable).where(log.type inSet (types.flatMap(t => Seq(t.code))))
.length
q.run
生成されたSQL
select x2.x3 from (select count(1) as x3 from (select x4.`id`, x4.`xxx`, x4.`yyy` from `xxx_log` x4 where x4.`type` in (0, 1)) x5) x2
SQLが。。
ひとまずcountを使うとして、lengthの使い方は再調査が必要。