我在scala中有以下查询:
val query = for {
(table1, table2) <- Customer leftJoin Transaction on (_.custID === _.custID)
if table1.name === "ABCD"
} yield (table1.name, table2.date)
当我使用query
时,我必须分别对query._1
和query._2
使用name
或date
。是一种使用此类内容的方式:query.name
,query.date
答案 0 :(得分:5)
你的表达式返回一个元组,并且可以使用模式匹配轻松解构元组(这里没有特定的Slick特性):
if($proizvodjac != null) { // "null" is a string, which is not null
$query .= " WHERE v.proizvodjac=\"$proizvodjac\""; // add a space in your string and use .= to concatenate
}
您应该能够对Slick查询返回的元组执行相同的操作:
val (foo, bar) = ("foo", "bar") // foo="foo", bar="bar"
答案 1 :(得分:0)
您可以针对该问题使用模式匹配
val (name, date) = for {...}
所以当左侧与右侧匹配时,变量将获得值
元组示例:
val (a,b) = (1,2)
scala> val (a,b) = (1,2)
a: Int = 1
b: Int = 2