将带有 between 的 SQL 查询转换为 Sequelize
Convert a SQL query with between to Sequelize
几天来我一直在尝试 运行 一个 SQL 查询,中间运算符在 node.js 中使用 sequelize 文字,但我完全做不到。该查询在 SQL 中运行良好,但我可以在 sequelize 中实现它。谁能帮帮我吗?这是 SQL 代码:
SELECT * FROM vs_app_demoes.order_planned WHERE
433869 BETWEEN
cast(substr(cast(barcode AS CHAR),1,6) AS SIGNED) AND
cast(substr(cast(barcode AS CHAR),1,6) AS SIGNED) + barcodeunits
AND paneno = 2
您可以将 BETWEEN
替换为两个 <=
和 >=
通过 AND 连接:
const prders = await OrderPlanned({
where: {
[Op.and]: [
Sequelize.where(Sequilize.literal('cast(substr(cast(barcode AS CHAR),1,6) AS SIGNED)'), '<=', 433869),
Sequelize.where(Sequilize.literal('(cast(substr(cast(barcode AS CHAR),1,6) AS SIGNED) + barcodeunits)'), '>=', 433869),
paneno: 2
]
}
})
几天来我一直在尝试 运行 一个 SQL 查询,中间运算符在 node.js 中使用 sequelize 文字,但我完全做不到。该查询在 SQL 中运行良好,但我可以在 sequelize 中实现它。谁能帮帮我吗?这是 SQL 代码:
SELECT * FROM vs_app_demoes.order_planned WHERE
433869 BETWEEN
cast(substr(cast(barcode AS CHAR),1,6) AS SIGNED) AND
cast(substr(cast(barcode AS CHAR),1,6) AS SIGNED) + barcodeunits
AND paneno = 2
您可以将 BETWEEN
替换为两个 <=
和 >=
通过 AND 连接:
const prders = await OrderPlanned({
where: {
[Op.and]: [
Sequelize.where(Sequilize.literal('cast(substr(cast(barcode AS CHAR),1,6) AS SIGNED)'), '<=', 433869),
Sequelize.where(Sequilize.literal('(cast(substr(cast(barcode AS CHAR),1,6) AS SIGNED) + barcodeunits)'), '>=', 433869),
paneno: 2
]
}
})