最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

如何在sequelize中获取带有绑定的原始sql?

IT培训 admin 10浏览 0评论

如何在sequelize中获取带有绑定的原始sql?

我正在尝试找到一种通过绑定获取原始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']
  }
});
回答如下:

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

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

如何在sequelize中获取带有绑定的原始sql?

我正在尝试找到一种通过绑定获取原始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']
  }
});
回答如下:

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

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

评论列表 (0)

  1. 暂无评论