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

实现简单的前台输入框查询筛选出内容包含的数据:
使用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语句中插入很多的”%“,并能快速查询到数据。


版权声明:本文为qq_32339477原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。