首页 > 解决方案 > PostgreSQL + JS:基于 1-5 个值的随机数组长度创建查询

问题描述

我有一个返回 1-5 个整数数组的函数,每次数组长度不同时:

[5、10、45、55、64]

如何根据该数组的长度生成 SQL 查询?

示例:如果数组长度为 3 个整数,我需要一个查询,例如

数组:[10、25、30]

SELECT * FROM comments WHERE id IN($1, $2, $3)

如果数组长度为 5 个整数,我将需要:

数组:[5、9、20、41、35]

SELECT * FROM comments WHERE id IN($1, $2, $3, &4, &5)

标签: javascriptsqlnode.jspostgresqlalgorithm

解决方案


在变量中构建 IN 部分并将其附加到 SQL

如果您的数组有 [10, 25, 30]

建立一个变量 v = "$1, $2, $3"

如果数组有 [5, 9, 20, 41, 35]

构建变量v = "$1, $2, $3, $4, $5"

然后将其附加到 SQL

SQL = 'SELECT * FROM comments WHERE id IN(v)'

推荐阅读