【问题标题】:sequelize raw query column doesn't existsequelize 原始查询列不存在
【发布时间】:2018-06-04 12:06:28
【问题描述】:

我正在尝试使用原始查询,但我得到了错误。 为什么它认为 test 是列名?

“测试”列不存在

module.exports = {

  getUser(req, res){
    var sql = 'SELECT * FROM Users As Users WHERE Users.username = "test"'
    //Get the username of the user
    //Search the Users_matches databse for their username and join it with the
    db.sequelize.query(sql, { type: sequelize.QueryTypes.SELECT})
    .then(result => {
      return res.status(201).send({
        result
      });
    })
}

【问题讨论】:

  • 标准 SQL 对字符串字面量使用单引号,双引号用于标识符(例如表名和列名)。

标签: sql node.js postgresql sequelize.js


【解决方案1】:

您可以转义值“test”。这行得通

const User = sequelize.define('User', {
  username: Sequelize.STRING,
});

sequelize.sync({ force: true })
  .then(() => {
    var sql = 'SELECT * FROM "Users" as "Users" WHERE username = \'test\'';
    sequelize.query(sql, { type: sequelize.QueryTypes.SELECT })
      .then(result => {
        console.log(result);
      });
  });

【讨论】:

    猜你喜欢
    • 2017-05-18
    • 1970-01-01
    • 2013-09-09
    • 2020-01-30
    • 2019-01-27
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多