javascript - Sequelize - 如何搜索多列?

标签 javascript sql node.js sequelize.js

我有一个包含多列文章的数据库,我希望能够同时搜索titledescription

目前,我有:

Article.findAll({
  where: {
    title: { like: '%' + searchQuery + '%' }
  }
});

如何同时搜索描述?

我已通读 the sequelize documentation ,即使在 Complex filtering/OR/NOT queries 部分,但示例似乎只解释了在一列中进行搜索。

最佳答案

Sequelize >= 4.12

const Op = Sequelize.Op;
Article.findAll({
  where: {
    title: { [Op.like]: '%' + searchQuery + '%' },
    description: { [Op.like]: '%' + searchQuery2 + '%' }
  }
});

Sequelize <4.12

Article.findAll({
  where: {
    title: { like: '%' + searchQuery + '%' },
    description: { like: '%' + searchQuery2 + '%' }
  }
});

以上将确保title包括searchQuerydescription包括searchQuery2 .但是,如果您希望在文章包含两者之一时返回结果,则以下查询应该有效:

Sequelize >= 4.12

const Op = Sequelize.Op;
Article.findAll({
  where: {
    [Op.or]: [
     title: { [Op.like]: '%' + searchQuery + '%' },
     description: { [Op.like]: '%' + searchQuery2 + '%' }
    ]
  }
});

Sequelize <4.12

Article.findAll({
  where: {
    $or: [
     title: { like: '%' + searchQuery + '%' },
     description: { like: '%' + searchQuery2 + '%' }
    ]
  }
});

关于javascript - Sequelize - 如何搜索多列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34255792/

相关文章:

sql - Oracle SQL开发人员: stop script running if error

javascript - Canvas 重新绘制被卡住(性能问题)

javascript - 如何在 Microsoft Windows 上使用 Node.js 编写文件?

java - OJBC 客户端升级后更改了 java.sql.Date 的行为

javascript - Firebase - 如何扩展 FirebaseError?

javascript - 在 AngularJS 服务调用后填充 jQuery UI Accordion

JavaScript/jQuery - 如何在父 div 中查找每个未确定类的第一个

javascript - 为什么该方程式的最大误差为4096 * Number.EPSILON?

php - 将 javascript 值分配给 php 变量

mysql - 对单词低于 ft_min_word_len 的结果使用全文和完全匹配