首页 > 解决方案 > 如何使用 WHERE 条件在 Postgres SELECT 查询中设置参数化值

问题描述

我对 PostgreSQL 很陌生,请多多包涵。

我需要使用带有 where 条件的 select 查询从表中读取记录。

  Eg: select * from switch where switchId=10;

查询工厂.js

  let queryMap = {
        “getSwitchInfo”: ‘select * from switch where switchId=?’
  }

  module.exports=queryMap;

控制器.js

 let client = require(rootdir+’dao/postgresSQL’);
 let queryFactory = require(rootdir+’/dao/QueryFactory’);

 let query = queryFactory.getQuery(“getSwitchInfo”);

 let switchId = req.query.switchId;
 client.query(query, function(err, res){
         if(err){

          }
 });

请参阅:-我从客户端获取的这个 switchId 值 10 并使用查询参数在我的节点后端层获取它。

请建议我如何将 switchId 作为参数化值传递给查询。

标签: node.jspostgresql

解决方案


我自己找到了解决这个问题的方法。将参数添加到数组并将此数组作为第二个参数传递给 client.query 方法,并在查询条件中我添加了 $1。现在工作正常

查询工厂.js

  let queryMap = {
    “getSwitchInfo”: ‘select * from switch where switchId=$1’
  }

  module.exports=queryMap;

控制器.js

  let params = [req.query.switchId];
     client.query(query, params, function(err, res){
         if(err){

         }
   });

推荐阅读