代码之家  ›  专栏  ›  技术社区  ›  shuk

用concatted where扩展范围

  •  0
  • shuk  · 技术社区  · 6 年前

    where = {};
    
      ...
    case c: {
      where = Sequelize.where(Sequelize.fn('concat', Sequelize.col('firstName'), ' ', Sequelize.col('lastName')), {
        like: '% John Doe %'
      })
    }
    Model.findAll({
      where: where
    })
    

    scopes: {
      field: function (field, keyword = '%%') {
        let where = {};
        switch (field.toLowerCase()) {
          case 'id':
            where.id = {[Op.like]: keyword};
            break;
          case 'email':
            where.email = {[Op.like]: keyword};
            break;
          case 'name' :
            where = sequelize.where(sequelize.fn('concat', sequelize.col('first_name'), ' ', sequelize.col('last_name')), {
              [Op.like]: keyword
            });
          }
          return {
            where
          }
        },
      }
    

    获取此错误:

    “where子句”中的未知列“User.attribute”

    console.log(where) :

    Where {
      attribute: Fn { fn: 'concat', args: [ [Col], ' ', [Col] ] },
      comparator: '=',
      logic: { [Symbol(like)]: '%%' }
    }
    

    1 回复  |  直到 6 年前
        1
  •  0
  •   KenOn10    6 年前

    ...
    case 'name' :
            where = Sequelize.where(sequelize.fn('concat', Sequelize.col('first_name'), ' ', Sequelize.col('last_name')), {
              [Op.like]: keyword
    ...
    
    推荐文章