首页 > 解决方案 > Sequelize LIKE/iLIKE 以列值作为子字符串

问题描述

对于 Postgres 本身,这里有一个较早的问题

我想要了解的是如何使用运算符在 Sequelize 中编写以下内容:

SELECT * FROM events 
 WHERE 'Edward Sharpe and the Magnetic Zeroes' LIKE '%' || name || '%';

它本质上是相反的

name: {
   [Op.iLike]: "%" + "Edward Sharpe and the Magnetic Zeroes" + "%",
}

标签: sequelize.js

解决方案


我还认为 sequelize 不太可能处理您的序列(string_literal,如 column_plus_wildcard)。这个特定的例子可以使用 INSTR 来处理,如下所示:

Events.findAll({
    where: Sequelize.where(
              Sequelize.fn('INSTR',
                 Sequelize.col('name'),'Edward Sharpe'),
              {$gt : 0}
           )
   })

其他情况,例如 %Edward%Sharp%Magnetic%,正则表达式函数可能很有用。


推荐阅读