阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      node-postgres 中 where-in 实现

      因为是在 nodejs 中使用的(基于 node-postgres)

      不能直接使用 where in 功能

      错误的用法

      比如在原生 SQL 中的下面语句

      select account from accounts where account in
      ('czr_3ijpzyoofukqrhjyqk5ma6c64m44fexc1idta7necszksbj6urfqq7yu3dsy','czr_1aptm6u579y1gx548hj7nmehtu3jmduxmp9pwm4abxyiartcd5kd4ofw1dyd')
      

      转成 where 如下

      let accAry = ['czr_3ijpzyoofukqrhjyqk5ma6c64m44fexc1idta7necszksbj6urfqq7yu3dsy', 'czr_1aptm6u579y1gx548hj7nmehtu3jmduxmp9pwm4abxyiartcd5kd4ofw1dyd'];
      let upsertSql = {
          text: "select account from accounts where account in ($1)",
          values: [accAry]
      };
      
      pgclient.query(upsertSql, (res) => {
          console.log("accounts", res)
      });
      

      但是并没有什么软用,这个获取不到想要的数据

      正确的用法

      改为使用 ANY 即可 , 代码如下

      let accAry = ['czr_3ijpzyoofukqrhjyqk5ma6c64m44fexc1idta7necszksbj6urfqq7yu3dsy', 'czr_1aptm6u579y1gx548hj7nmehtu3jmduxmp9pwm4abxyiartcd5kd4ofw1dyd'];
      let upsertSql = {
          text: "select account from accounts where account = ANY ($1)",
          values: [accAry]
      };
      
      pgclient.query(upsertSql, (res) => {
          console.log("accounts", res)
      });
      

      这样就可以获取到数据了

      目录
      目录