从 knex 查询中访问列值
Access column value from within knex query
我想通过对 B 列应用函数来更新 A 列的值。
是否有以下形式的简单解决方案:
knex('table')
.update({
colA: func(${colB})
})
是的,在 Knex 中有一种方法可以做到这一点。
对于在 Knex 中没有明确支持的 SQL 函数,您使用 knex.raw(SQLstring, parmArray)
封装 SQL 片段或 knex.schema.raw(...)
生成整个 SQL 语句。并且您使用单问号 ?
进行值替换,使用双问号 ??
进行字段标识符替换。 (see link)
所以 SQL: UPDATE table SET colA = func(colB)
... 可以通过包含 SQL 代码段来生成:(你很接近)
knex('table')
.update({
colA: knex.raw( 'func(??)', ['colB'] )
})
... 或完整原始 SQL:
knex.schema.raw( 'UPDATE table SET ?? = func(??)', ['colA', 'colB'] )
干杯,加里。
我想通过对 B 列应用函数来更新 A 列的值。
是否有以下形式的简单解决方案:
knex('table')
.update({
colA: func(${colB})
})
是的,在 Knex 中有一种方法可以做到这一点。
对于在 Knex 中没有明确支持的 SQL 函数,您使用 knex.raw(SQLstring, parmArray)
封装 SQL 片段或 knex.schema.raw(...)
生成整个 SQL 语句。并且您使用单问号 ?
进行值替换,使用双问号 ??
进行字段标识符替换。 (see link)
所以 SQL: UPDATE table SET colA = func(colB)
... 可以通过包含 SQL 代码段来生成:(你很接近)
knex('table')
.update({
colA: knex.raw( 'func(??)', ['colB'] )
})
... 或完整原始 SQL:
knex.schema.raw( 'UPDATE table SET ?? = func(??)', ['colA', 'colB'] )
干杯,加里。