javascript - Sequelize 原始查询 : Valid SQL query returns nothing

标签 javascript sql database postgresql sequelize.js

我的 sequelize 查询总是返回 0 结果,
但是当我将完全相同的查询复制/粘贴到 psql 时它工作正常,完全按预期返回正确的行

  return sequelize.query(
"SELECT * FROM orders" +
" INNER JOIN sizes ON orders.sizeid = sizes.sizeid" +
" INNER JOIN types ON sizes.typeid = types.typeid" +
" INNER JOIN items ON types.itemid = items.itemid" +
" WHERE orders.fbid = :fbid AND pickuptime >= :today" +
" ORDER BY orders.pickuptime ASC",
{ replacements: {fbid, today}, type: sequelize.QueryTypes.SELECT }

);

fbid 是一个整数 & 今天是一个形状为 'yyyy-mm-dd' 的字符串

如果我放弃“今天”条件,我会得到返回的行

sequelize 是否转义了我的日期字符串?

最佳答案

如果您在 SQL 脚本中定义了类似 fbid=:fbid 的命名参数,
你应该传递一个对象 {fbid: 'fbid_value'}

或者如果你定义了未命名的参数 fbid=? ,你应该传递一个数组 ['fbid_value']

这是 http://docs.sequelizejs.com/en/latest/api/sequelize/#querysql-options-promise 文档

尝试将对象传递给替换:

return sequelize.query(
"SELECT * FROM orders" +
" INNER JOIN sizes ON orders.sizeid = sizes.sizeid" +
" INNER JOIN types ON sizes.typeid = types.typeid" +
" INNER JOIN items ON types.itemid = items.itemid" +
" WHERE orders.fbid = :fbid AND pickuptime >= :today" +
" ORDER BY orders.pickuptime ASC",
{ replacements: {fbid: 'fbid_value', today: 'today_value'}, type: sequelize.QueryTypes.SELECT }
);

关于javascript - Sequelize 原始查询 : Valid SQL query returns nothing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40276309/

相关文章:

SQL查询效率——UNION ALL的影响

sql - 复合主键与附加 "ID"列?

mysql - 不要重复两个不同表中的条目行

c# - 以数据库为存储介质在.NET中实现日志记录库

javascript - 如何获得数组的实际 Javascript 数组比较器

javascript - 更改服务日历中的选定行 [CRM2013]

mysql - SQL "group by"使用优先级

sql - 如何将现有行与 SQLite 中的新数据合并?

javascript - 了解 EaselJS 的动画/物理/数学实现

javascript - 哈希从32bit int到16bit int?