有没有一种方法可以将数组包含在where:带后缀的$ or子句中?

时间:2019-03-31 12:00:20

标签: javascript mysql node.js express sequelize.js

我有一组IDsteamIdsSelected = ['1','5',..,'X']

然后,从名为“ Challenge”的表中,我想从数组teamIdsSelected中获取与每个teamId关联的所有挑战。到目前为止,这是我尝试过的:

  1. 使用此功能:
    createWhereClause(column, field) {
        return models.sequelize.where(
            models.sequelize.literal(`${column} in (`),
            `'${field}'`,
            models.sequelize.literal(')'))
    },
  1. 以这种方式应对挑战:
    const challenges = await Challenge.findAndCountAll({
        where: {
            team_id: createWhereClause(team_id, teamsIdsSelected)
        }
    })

但是它不起作用,我只能以team_id等于teamsIdsSelected = teamsIdsSelected.slice(-1)[0]的最后一项来获得挑战 例如,如果teamsIdsSelected = ['1', '4', '7'],则结尾处的where子句(当我查看日志时)仅为"where challenge.team_id = 7"

我真正想要的是一个OR条件,它将所有与1、4或7匹配的挑战作为team_id。有没有一种无需创建for循环的快速方法?

让我知道您是否需要更精确地了解我的问题。谢谢。

1 个答案:

答案 0 :(得分:0)

functools.partial