0

我有一些调用 groovy Sql 对象的 Groovy 代码:

Sql sql = new Sql(dataSource)
sql.execute(insert)

过去它工作得很好,但我现在有一些条件逻辑,我试图用 CASE 语句来建模,比如CASE WHEN a.pick = ${somevalue} THEN ${100} ELSE 0 END CASE"

但是,我收到一个运行时错误,说它不识别a,但我认为这是它一般不识别 CASE 语句的症状,正如a在查询中的其他地方所识别的那样,这并不是什么新鲜事。我怎样才能做到这一点?谢谢。

4

1 回答 1

1

我猜这可能是您的 mysql 语法的问题,但我无法确认,因为没有提供。或者,但不是那么优雅;你可以用 groovy 处理这个...

def sqlInsert = "insert into foo (bar) values (${(foo.pick == someValue)? 100 : 0})"

但是,首先您应该打印失败的查询并直接在 MySQL 中运行它,看看它是否是语法问题。

于 2012-06-02T13:20:17.540 回答