在Slick中使用纯SQL查询我想进行查询并获取行数,我不关心数据。
我应该使用updateNA吗?在StaticQuery上调用execute不会返回任何内容。如何获取行数?
答案 0 :(得分:0)
您需要拨打.first
或.execute
。 http://slick.typesafe.com/doc/2.0.2/api/index.html#scala.slick.jdbc.StaticQuery0
如果你有一个正常的选择(而不是删除或更新),你需要像Dan建议的那样询问行数。
答案 1 :(得分:-1)
最简单的方法是修改您正在执行的SQL查询以返回行计数,方法是用SELECT COUNT(*) FROM (...)
包围它。如果您要使用原始SQL字符串,这是最简单的,但如果您有StaticQuery
对象,也可以这样做:
def getRowCount[P](q: StaticQuery[P, _], params: P = ())
(implicit pconv: SetParameter[P], rconv: GetResult[Int]): Int = {
val q2 = StaticQuery.query[P, Int](
"SELECT COUNT(*) FROM (" + q(params).getStatement + ")")
q2(params).first
}