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)
});

这样就可以获取到数据了

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了