【问题标题】:How to get raw sql with binds in sequelize?如何在 sequelize 中使用绑定获取原始 sql?
【发布时间】:2019-10-04 03:16:40
【问题描述】:

我正在尝试找到一种方法来使用绑定获取原始 SQL。

以下适用于 Sequelize 模型:

let conditions = {
   color: { [Sequelize.Op.in]: ['blue', 'yellow'] },
   type: 'active'
};

let options = { limit: 10 };

let sql = await sequelize.dialect.QueryGenerator.selectQuery('widgets',
{
  where: conditions,
  ...options    
});

以上输出

SELECT * 
FROM "widgets" 
WHERE "widgets"."color" IN ('blue', 'yellow') AND "widgets"."type" = 'active' 
LIMIT 10;

我们如何获取带有原始 SQL 查询绑定的 sql?

sequelize.query(`
SELECT * 
FROM widgets
WHERE color IN (:colors)
`, 
{
  raw: true,
  type: QueryTypes.SELECT,
  replacements: {
    colors: ['blue', 'yellow']
  }
});

【问题讨论】:

    标签: node.js sequelize.js


    【解决方案1】:

    我们可以使用sequelizegetWhereConditions方法生成where子句

    let sql = await sequelize.dialect.QueryGenerator.getWhereConditions(
          conditions,
          'widgets',
        );
    

    【讨论】:

      猜你喜欢
      • 2021-12-13
      • 1970-01-01
      • 2019-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-15
      • 2017-01-09
      • 2015-09-08
      相关资源
      最近更新 更多