如何在Slick 2.0中COUNT(*)?

时间:2014-02-02 20:50:31

标签: scala slick slick-2.0

根据Slick 2.0 documentation, 获取表中的行数:

val q1 = coffees.length
// compiles to SQL (simplified):
//   select count(1) from "COFFEES"

但事实证明,coffees.length的类型为Column[Int]

如何执行查询并获取值?

3 个答案:

答案 0 :(得分:26)

我刚才有同样的问题升级到slick 2.0。我忘记了确切的方法存在的地方,但通用.run似乎对我有效,即

coffees.length.run

答案 1 :(得分:5)

StaticQuery.queryNA[Int]("select count(*) from \"" + TableName + "\"").first

如果您的表名不是大写,则需要引号。

答案 2 :(得分:1)

尝试coffees.length.first应执行并返回Int

对不起,确实,在光滑的1.0中有第一种方法可以做到这一点,在Slick 2.0中他们摆脱了它,转而支持更通用的run

执行查询的功能是

coffees.length.run