0

在 prequel 中,一个使用 scala 进行 JDBC 访问的精益库,以下语句有效:

val stmt = "SELECT content FROM email WHERE to_email = '" + toEmail + "' AND subject LIKE 'Hi " + firstName + ", please activate your Account...' AND from_user_id IS NULL"
val activationRows = selectNewsDB(stmt)   

而带有'%foo%'的那个-

val stmt = "SELECT content FROM email WHERE to_email = '" + toEmail + "' AND subject LIKE '%please activate%' AND from_user_id IS NULL"

失败并显示此错误消息:

Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = 'p'

如果我 println 语句并将其复制/粘贴到 mysql 控制台,它也可以正常工作。

为了完整起见,这是前传代码,newsDB 的类型为 DatabaseConfig

  def selectNewsDB(stmt: String):Seq[String] ={
    newsDB.transaction { tx =>
      tx.select( stmt ) { r =>
         r.nextString.get
      }
    }
  }
4

1 回答 1

0

找到了解决方案:要使用 %,我必须取其中 2 个:

  val stmt = "... subject LIKE '%%please activate%%' AND from_user_id IS NULL"
于 2013-07-11T09:34:08.767 回答