将带有 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
    ]
  }
})