【问题标题】:How do I use a variable in a Knex Where clause?如何在 Knex Where 子句中使用变量?
【发布时间】:2020-12-03 22:52:30
【问题描述】:
    async getSearchRecords(searchVal : string): Promise<any> {
        const query = this.knex(`${this.config.get('database.schema')}.account`)
            .select('name', 'id').where('name','LIKE', `%${searchVal}%`);

        // this.knex.raw('SELECT * FROM account');
        return query;
    }

变量“searchVal”在此似乎不起作用,但如果我用静态文本值替换它,它就起作用了。我是不是用错了变量?

【问题讨论】:

  • searchVal 和您的字符串文字值到底是什么?根据此处显示的代码,我不明白为什么它不应该工作。

标签: sql node.js knex.js


【解决方案1】:

听起来您的 searchVal 变量是空的或类似的东西。您的查询应该可以正常工作:

https://runkit.com/embed/6b1tglm5zi0j


const Knex = require('knex');

const knex = Knex({
  client: 'pg',
});

const searchVal = 'fooo';

knex('account').withSchema('schemaPrefix').select('name', 'id').where('name','LIKE', `%${searchVal}%`).toSQL()

// outputs
// sql: "select \"name\", \"id\" from \"schemaPrefix\".\"account\" where \"name\" like ?"
// bindings: ["%fooo%"]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-18
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    • 2020-02-24
    • 2020-04-16
    相关资源
    最近更新 更多