Sql 在db中的多个列上进行模式匹配
我在Play 2.2应用程序中对db进行了以下sql查询:Sql 在db中的多个列上进行模式匹配,sql,scala,playframework,pattern-matching,anorm,Sql,Scala,Playframework,Pattern Matching,Anorm,我在Play 2.2应用程序中对db进行了以下sql查询: SQL("SELECT t.id, t.field1, t.field2 from table1 t WHERE t.field1 = {param1}") .on("param1" -> param1)() .map { case ??? }.toList 此请求可以返回: 没有记录 记录但field2为NULL field2为非空的记录 我如何处理这些案件?我只知道如何处理单个列: //..
SQL("SELECT t.id, t.field1, t.field2 from table1 t WHERE t.field1 = {param1}")
.on("param1" -> param1)()
.map {
case ???
}.toList
此请求可以返回:
field2
为NULL
field2
为非空的记录
//...
.map {
case Row(field1: Option[String]) => field1
}.toList
使用行解析器,如下所示: 例如:
val results: List[(Int, Int, String)] =
SQL("SELECT t.id, t.field1, t.field2 from table1 t WHERE t.field1 = {param1}")
.on("param1" -> param1)()
.as(int("t.id") ~ int("t.field1") ~ get[Option[String]]("t.field2") map(flatten) *)
.toList
一个问题:当根本没有记录时,如何处理这个案例?你应该得到一个空列表。