mysql - 检查表中是否存在所有条目
问题描述
再会,
我在 nodeJs 中使用 Sequelize mysql。
我的问题是,给定一组 ID,例如 [4,5,6,7,8]
还有一个表 T ,其中每一行都有一个 ID。比如说,表 T:
ID
4
5
7
8
如何搜索数组中的所有 ID 是否都存在于表中?
我是否做一个 for 循环并在每个循环上调用 find ?这是异步完成的还是同步完成的?如果我想这样做,我该如何将它包装在一个承诺中?
如果表中存在给定数组的所有 ID,我不确定搜索的正确方法是什么。
谢谢
解决方案
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
- 至少一个元素不存在。
数组不得包含重复项。
推荐阅读
- python - 是否可以从 Databricks 中读取本地 excel 文件?
- java - 如何在spring-security中为嵌套url设置不同的访问权限
- css - 如何正确导入导入其他 CSS / SCSS 的 SCSS
- ios - 如何减少 Flutter 中 IOS 构建的 .ipa 文件大小?
- python - 如何正确复制变量,以便在原始变量更改其值时更改副本的值
- javascript - Puppeteer:如何点击按钮跳转到另一个页面并获取新页面的内容?
- r - 删除重复的行值并保留行
- javascript - 使用 discord.js 进行消息传递
- javascript - 在 Gatsby 中将 Context Provider 放在哪里?
- android - 在 RecyclerView 项目单击上打开另一个片段不会隐藏 RecyclerView