有没有办法获得超过 1 个值?

Is there a way to get more than 1 value using?

我有一个 better-sqlite3 语句对我的数据库进行排序和排名,我有一个 IN 语句所以我可以 select 超过 1 行。这就是我 运行 遇到问题的地方,我需要根据动态 ID 数组获取多行。

我的 SQLITE 语句如下所示:

Table.prepare('SELECT *, RANK () OVER (ORDER BY amount DESC) rank FROM table WHERE user IN(?)');

我试着从这个陈述中得到这样的东西:

getAll.get(['1','2','3']);
getAll.get('6,9,4');
getAll.get('7','5','8');

我收到一个错误:

RangeError: Too many parameter values were provided

我如何在不知道数组长度的情况下 select 多个值(因此 ?,? 不会削减它),并允许尽可能多的值?我使用了 ?*,但出现语法错误。

我正在使用 better-sqlite3 用于 Node.JS

而不是 IN 使用运算符 LIKE:

SELECT *, RANK () OVER (ORDER BY amount DESC) rank 
FROM table 
WHERE ',' || ? || ',' LIKE '%,' || user || ',%'

并将列表作为 1 个逗号分隔值字符串(无空格)传递:

all('6,9,4');