首页 文章

我可以用字符串构建一个Slick纯SQL查询吗?

提问于
浏览
1

我正在使用Slick来组装一个简单的SQL查询 .

我希望在运行时以不同的方式构造部分查询,具体取决于局部变量 .

这意味着我需要连接多个部分 SqlAction (我认为?) .

我理解另一种方法是使用 #${plainSqlString} 但这需要我手动将我的参数转换为文字(例如下面的 $delta#$delta ) . 但是,对于 String 参数,这需要手动SQL清理......我想避免这种情况!

val delta      = 42

val applyDelta =
  if (limitNegatives)
    "GREATEST(0, col_1 + $delta)"
  else
    "col_1 + $delta"

val statement =
  sqlu"""
        UPDATE table_foo
        SET    col_1=#${applyDelta}
      """

任何想法如何在每个 SqlAction 中使用参数( $delta )字符串构建 SqlAction

1 回答

  • 0
    val delta      = 42
    
    val applyDelta =
      if (limitNegatives)
        sqlu"UPDATE table_foo set col1 = GREATEST(0, col_1 + ${delta})"
      else
        sqlu"UPDATE table_foo set col1 = col_1 + ${delta}"
    

    applydelta的值是一个可以执行的SqlAction

相关问题