def items = sql.rows("select * from ifo_order where orgid=? and treatofficeid in?", [orgid, ]); groovy文件中上面这个sql in语句怎么传参数,补全上面代码
时间: 2024-09-26 16:03:10 浏览: 95
sqlrows:分析器:通过报告有关* sql.Rows使用错误的诊断信息,帮助发现错误
在 Groovy 文件中,如果你想使用 `in` 关键字作为条件,并传递多个参数给 `treatofficeid` 字段,你需要将待插入列表转换为数组或集合,然后用数组的形式一起传递。下面是一个完整的例子:
```groovy
def orgId = 'yourOrgId' // 替换为你实际的组织ID
def treatOfficeIds = ['1', '2', '3'] // 这里是你要匹配的治疗办公室ID数组
def items = sql.rows("select * from ifo_order where orgid=? and treatofficeid in (:treatOfficeIds)", [orgid: orgId, treatOfficeIds: treatOfficeIds])
// :treatOfficeIds 是参数占位符,它会被 `treatOfficeIds` 集合的实际值替换
// 如果你想保证数组长度和查询中的 `in` 子句一致,可以用 `collect { it }` 转换为列表
def consistentItems = sql.rows("select * from ifo_order where orgid=? and treatofficeid in (collect { treatOfficeIds[delegate.index] })", [orgid: orgId, treatOfficeIds: treatOfficeIds as List])
阅读全文