javascript - 返回重复条目

标签 javascript sqlite

我有一个带有 _id,name 的表。我使用 SQLite3 查询来获取给定 id 的名称,如以下 api。

getName(id) >> Query "select name from table where _id=id"

以及用于 ID 数组的另一个方便的 API,返回的行(名称)必须与请求的 ID 的顺序匹配。

getNames(ids) >> 
    /* Returned text must be ordered */
    var ordClause='ORDER BY CASE _id';
    for(var i=1;i<=ids.length;i++){ ordClause += ' WHEN '+ids[i-1]+' THEN '+i; }
    ordClause += ' END';
    Query "select name from table where _id in( "+ids+" ) "+ordClause

当给定的 ids 具有重复值时,就会出现此问题。冗余 id 仅映射到第一个 id。因此,返回的行可能少于请求的 ID。

我怎样才能解决这个问题?

最佳答案

SELECT 查询返回与 WHERE 子句中的过滤器匹配的任何行。 IN 集中的冗余 ID 不会改变单行与该过滤器匹配的事实。

如果您确实想要重复的行,则必须为每个行编写单独的查询:

SELECT name FROM MyTable WHERE ID = 7
UNION ALL
SELECT name FROM MyTable WHERE ID = 8
UNION ALL
SELECT name FROM MyTable WHERE ID = 8
UNION ALL
SELECT name FROM MyTable WHERE ID = 7
UNION ALL
SELECT name FROM MyTable WHERE ID = 1;

关于javascript - 返回重复条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35363077/

相关文章:

c# - 显示 FolderBrowserDialog 后 SQLite 中的 EntryPointNotFoundException

javascript - Fotorama 箭头不显示

ios - 如何使用外键从两个表中获取记录

javascript - 使用 jquery 或 javascript 设置下拉选项值

以相同速度运行的 Javascript 游戏循环?

python - Sqlite 和 Python——使用 fetchone() 返回字典?

python - 在 ubuntu 上安装/配置 graphite 时出错

ruby - DataMapper导入主键

javascript - 如何将数据从指令模板传递到 Controller ?

javascript - 如何在开关内显示警报