sequelize mysql查询where属性为null

时间:2016-10-13 11:21:43

标签: mysql sequelize.js

我有一个地址,我想知道它是否已经在数据库中,如果没有,创建一个新地址。我知道我可以在这里使用findOrCreate(),但让我们轻松一点,然后检查一下为什么我甚至找不到现有的地址。

  var address = {
    name: req.body.name,
    address1: req.body.address1,
    address2: req.body.address2,
    zip: req.body.zip,
    city: req.body.city,
    country: req.body.country,
    user_id: req.body.user_id
  };

  Address.find({where: address}).then(function(result){
    console.log(result);
  }).catch(function(err){
    console.error(err);
  });

生成的查询要求... AND user_id = NULL哪个错误。它应该问... AND user_id IS NULL。我怎样才能让续集为我做正确的事?感谢。

1 个答案:

答案 0 :(得分:2)

您应该只使用JavaScript null原语。

var address = {
    name: req.body.name,
    address1: req.body.address1,
    address2: req.body.address2,
    zip: req.body.zip,
    city: req.body.city,
    country: req.body.country,
    user_id: req.body.user_id || null
};

这将生成查询

... user_id IS NULL

其他信息

model.findAll( { where: { some_column : undefined } } );

将生成

... WHERE `some_column` = NULL