如何在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',
);