当我用ScalaQuery编程时,如何构建一个"select (*) from表“语句?
我用了一个
查询(TestTable.count)
但是生成的select语句是:
选择count(*) from (从TestTable t2选择t1 )t1
我要的是:
从TestTable中选择count(*)
为我糟糕的英语感到抱歉。
import org.scalaquery.ql.extended.MySQLDriver.Implicit._
import org.scalaquery.session._
import org.scalaquery.session.Database.threadLocalSession
import org.scalaquery.ql.Query
import org.scalaquery.ql.basic.{BasicTable => Table}
object Test {
val db = Database.forURL(...)
db withSession {
val q = Query(TestTable.count)
println(q.selectStatement)
}
}
object TestTable extends Table[(Long, Int)]("test") {
def id = column[Long]("id")
def config = column[Int]("config")
def * = id ~ config
}发布于 2010-09-26 13:01:55
我不该这么快就把它叫做窃听器。生成的代码是正确的,但显然不理想。从ScalaQuery 0.9.0开始,只能通过手动将CountAll操作符插入查询AST获得所需的语句:
TestTable.map(t => ColumnOps.CountAll(t))为了改善这种情况,我刚刚进行了一次更改,以便在许多情况下避免不必要的子查询。在ScalaQuery 0.9.1中,您最初的尝试“查询(TestTable.count)”应该可以像预期的那样工作。
https://stackoverflow.com/questions/3792347
复制相似问题