NodeJS 如何通过sequelize.fn搜索到postgresql?

qxsslcnc  于 2023-03-29  发布在  Node.js
关注(0)|答案(1)|浏览(144)

我有变量['one', 'two']进入查询,我有一个表:

id name variants
0  foo one
1  bar two one
2  foobar one two

我想在这个表中找出列variants中有onetwo的行,它们的顺序是随机的
例如:
如果我有one-它将返回所有行
如果我有two-它将返回23
如果我有onetwo-它将返回23
现在我加入(' ')一个数组,并按顺序和使用进行查找,但我想查找不依赖于顺序:

model = await Item.findAndCountAll(
                {
                    where: {name: sequelize.where(sequelize.fn('LOWER', sequelize.col('variants')), 'LIKE', '%' + variants + '%')}
                })

但它让我

bqf10yzr

bqf10yzr1#

您可以使用regexp_split_to_array@>(包含)运算符以任何顺序匹配多个单词。

const search_term = ['one', 'two']

await Item.findAndCountAll({
    where: Sequelize.where(
        Sequelize.fn('regexp_split_to_array', Sequelize.fn('lower', Sequelize.col('variants')), '\\s+'),
        '@>',
        search_term
    )
});

相关问题