postgresql查询在node.js中失败,但在pgadmin中成功
我有以下postgresql查询:postgresql查询在node.js中失败,但在pgadmin中成功,node.js,postgresql,node-postgres,Node.js,Postgresql,Node Postgres,我有以下postgresql查询: SELECT user_id, username, full_name, avatar, verified FROM users WHERE user_id IN (1,2,3) 它应该选择ID为1、2或3的所有用户。ID类型为bigint。在pgadmin中,此查询的工作方式与它应该的一样,但是使用,我得到以下错误: 错误:bigint类型的输入语法无效:“1,2,3” Node.js代码示例: // I have an array user_ids_ar
SELECT user_id, username, full_name, avatar, verified FROM users WHERE user_id IN (1,2,3)
它应该选择ID为1、2或3的所有用户。ID类型为bigint。在pgadmin中,此查询的工作方式与它应该的一样,但是使用,我得到以下错误:
错误:bigint类型的输入语法无效:“1,2,3”
Node.js代码示例:
// I have an array user_ids_array containing all user ID's
// I convert it to a string using join()
const user_ids = user_ids_array.join(',')
query = "SELECT user_id, username, full_name, avatar, verified FROM users WHERE user_id IN ($1)"
values = [user_ids]
result = await pool.query(query, values)
我想这与user_id(field)是整数(bigint)和user_id是字符串有关,但我不知道如何进行类型转换
我发现了,但我也给出了解决方案,使用,其中(1,2)
中的一些id
提前谢谢 解决此问题的一种方法是在数组中执行一个不必要的操作 给定当前代码,您的
数组ID
,必须是javascript中的默认数组(不转换为字符串):
请注意,pool.query
中的second
参数与当前用例不同
希望能有帮助
在我的项目中,我使用了lib pg。不确定它是否能与节点postgres
一起工作
const arrayids = [1,2,3]
const sql = "SELECT user_id, username, full_name, avatar, verified FROM users WHERE user_id IN (SELECT UNNEST($1::int[]))"
result = await pool.query(query, [arrayids])