首页 > 解决方案 > 检查表中是否存在所有条目

问题描述

再会,

我在 nodeJs 中使用 Sequelize mysql。

我的问题是,给定一组 ID,例如 [4,5,6,7,8]

还有一个表 T ,其中每一行都有一个 ID。比如说,表 T:

ID

4

5

7

8

如何搜索数组中的所有 ID 是否都存在于表中?

我是否做一个 for 循环并在每个循环上调用 find ?这是异步完成的还是同步完成的?如果我想这样做,我该如何将它包装在一个承诺中?

如果表中存在给定数组的所有 ID,我不确定搜索的正确方法是什么。

谢谢

标签: mysqlnode.jssequelize.js

解决方案


SELECT COUNT(DISTINCT id) = 5       -- the values amount in the array
FROM sourcetable
WHERE FIND_IN_SET(id, '4,5,6,7,8')  -- the array as CSV literal

此查询将返回 1 条记录,其中包含一个字段。值1表示所有数组元素都存在,0- 至少一个元素不存在。

数组不得包含重复项。


推荐阅读