Node.js在数据库进行多条件模糊查询的sql技巧

本文介绍了如何在Node.js中通过Ajax请求后台,控制器处理,然后在DAO层利用参数化的SQL进行多条件模糊查询。总结了将模糊查询的百分号作为参数传递给DAO层,以简化SQL语句,提高查询效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现简单的前台输入框查询筛选出内容包含的数据:
使用ajax请求后台,后台拦截后再交给逻辑处理层(controller),再在dao层进行sql语句的查询并返回数据给逻辑层:

  blog_search:function (req,resp) {
       let search_value=req.query.search_value;//获取到前台(ajax)传过来的数据
       console.log(search_value);//控制台打印出数据(查看是否获取到了)
       fjfdao.blog_search(["%"+search_value+"%","%"+search_value+"%",
       "%"+search_value+"%"]).then(
       //给dao层返回三个参数,这里要查询3个条件(该参数就是你要在数据库查询的参数)
           function (result) {
               console.log(result);
               resp.send(result);//将数据返回给页面
           }
       );
   }
   *注:比如 select * from student where s_name="张三"(”张三“就是参数)*

再转到dao层进行数据库的查询语句处理:

blog_search(params){
        let p1=new Promise(function (resolve,reject) {
            dbpool.connect("SELECT * FROM  bloginformation WHERE blogTitle LIKE ? OR blogContent LIKE ? OR blogLable LIKE ?",
                params,(err,data)=>{
                if(!err){
                    resolve(data);//返回数据到处理层
                }else{
                    reject(err);
                }
            })
        });
        return p1;
    },

总结:将要模糊查询的”%“放到处理层作为参数(看成一个数据)一起传到dao层,从而dao层的sql语句就只用写一个”?“,就避免了在sql语句中插入很多的”%“,并能快速查询到数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值