sequelize模糊查询及分页

首先模糊查询要用到Op,一定要导入,否则会报错

// 使用模糊查询需要先引入Op
const seq = require('sequelize');
const Op = seq.Op;

然后是查数量,本人习惯是先查数量,不为0再去查详细数据:

这里的 user_name就是本人要检索的字段, ${user_name} 中的user_name是前端传的:

let count = await User.count({
            where: {
                user_name: {
                    [Op.like]: `%${user_name}%`
                },
            }
        });

查详细列表同理,使用 attributes 过滤掉密码字段,使用 limit和offset来分页,pageSize和pageIndex是前端传的分页数据;

 let res = await User.findAll({
                attributes: {exclude: ['password']},
                where: {
                    user_name: {
                        [Op.like]: `%${user_name}%`
                    },
                },
                limit: pageSiz
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Sequelize进行模糊查询时,需要先导入Op模块。然后,可以使用Op.like来实现模糊查询。下面是一个使用Sequelize进行模糊查询的示例方法: ```javascript const Sequelize = require('sequelize'); const Op = Sequelize.Op; async function getUserList({id, user_name, is_admin, pageInfo}) { let whereObj = {}; id && Object.assign(whereObj, {id}); is_admin && Object.assign(whereObj, {is_admin}); user_name && Object.assign(whereObj, { user_name: { [Op.like]: `%${user_name}%` } }); let count = await User.count({where: whereObj}); let res; if (count !== 0) { let _pageInfo = {}; if (pageInfo) { let {pageIndex, pageSize} = JSON.parse(pageInfo); _pageInfo = { limit: pageSize, offset: (pageIndex - 1) * pageSize } } res = await User.findAll({ attributes: {exclude: ['password']}, where: whereObj, ..._pageInfo }); } return {list: res, count: count} || null; } ``` 这个方法会根据传入的参数进行模糊查询,其中`user_name`字段会使用`Op.like`来实现模糊匹配。同时,这个方法还会返回查询结果的列表和数量。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Sequelize模糊查询](https://blog.csdn.net/m0_37805167/article/details/83002728)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [sequelize模糊查询分页](https://blog.csdn.net/qq_23521659/article/details/124871838)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值