在 Sequelize 中使用 “LIKE” 操作符进行模糊查询

前言

Sequelize 是一个使用 Node.js 实现的 ORM 框架,支持多种数据库,包括 MySQL、PostgreSQL 等。如果你使用 Sequelize 来管理数据库,那么你可能会遇到需要进行模糊查询的情况。本文将介绍在 Sequelize 中如何使用 "LIKE" 操作符进行模糊查询。

LIKE 操作符

"LIKE" 操作符是 SQL 中的一个关键字,用于在字符串中查找指定的模式。其语法如下:

SELECT * FROM table_name WHERE column_name LIKE pattern;

其中,pattern 表示要查找的模式。它可以包含以下特殊字符:

  • %:表示匹配任意字符,包括空字符。
  • _:表示匹配任意单个字符。

例如,要查找以 "abc" 开头的字符串,可以写成:

SELECT * FROM table_name WHERE column_name LIKE 'abc%';

要查找包含 "abc" 的字符串,可以写成:

SELECT * FROM table_name WHERE column_name LIKE '%abc%';

Sequelize 中的模糊查询

在 Sequelize 中,我们可以使用 Op.like 操作符来表示 "LIKE" 操作符。其语法如下:

const { Op } = require("sequelize");

Model.findAll({
  where: {
    column_name: {
      [Op.like]: pattern
    }
  }
});

其中,Op.like 表示 "LIKE" 操作符,pattern 表示要查找的模式。需要注意的是,pattern 应该是字符串类型。

下面,我们来看一个例子。假设有一个 users 表,其中包含 id 和 name 两个字段。我们要查找所有名字包含 "John" 的用户。可以这样写:

const { Op } = require("sequelize");

const users = await User.findAll({
  where: {
    name: {
      [Op.like]: "%John%"
    }
  }
});

console.log(users);

以上代码中,[Op.like] 表示使用 "LIKE" 操作符,"%John%" 表示要查找的模式。由于我们想查找包含 "John" 的字符串,而不是以 "John" 开头的字符串,所以模式两边都需要加上 %。

总结

本文介绍了在 Sequelize 中使用 "LIKE" 操作符进行模糊查询的方法。通过学习本文,你可以掌握在 Sequelize 中进行模糊查询的技巧,并可以在实际项目中应用。同时,我们还简单介绍了 "LIKE" 操作符在 SQL 中的基本用法,希望对你理解本文有所帮助。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65adc6bfadd4f0e0ff7403c7