为什么执行下面的查询SELECT id, email, name FROM users AS users WHERE users.email = '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="ef8e8b828681af8e8b828681c18c8082" rel="noreferrer noopener nofollow">[email protected]</a>';
而不是SELECT * from users WHERE email = <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="6f0e0b0206012f0e0b020601410c0002" rel="noreferrer noopener nofollow">[email protected]</a>
?
http://docs.sequelizejs.com/en/latest/docs/querying/#where
文档指出,当我执行 findAll() 时,它将运行 SELECT * 查询,但在我的示例中它会执行不同的操作。这里缺少什么?
这是我的用户模型。
var user = sequelize.define('users', {
id : {
type : Sequelize.INTEGER,
primaryKey : true,
autoIncrement : true
},
email : {
type : Sequelize.STRING
},
name : {
type : Sequelize.STRING
}
},
{
tableName: 'users',
freezeTableName: true
});
这是我的查询。它似乎只选择定义的列,但我不想要这个。
var email = "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="cdaca9a0a4a38daca9a0a4a3e3aea2a0" rel="noreferrer noopener nofollow">[email protected]</a>";
user.findAll({where: {email: email}}).then(function (user) {
res.send(user);
}).error(function (err) {
console.log("Error:" + err);
});
最佳答案
这是sequelize 仅选择您定义的列的预期行为。如果您想使用sequelize 选择所有列,则必须在模型中定义它们。
关于node.js - 序列化 "SELECT * from tablename"查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33326046/