sql - 在 sequelize 中,如何选择与我正在搜索的所有值匹配的记录?

标签 sql sequelize.js

例如,我有下表:

T | S
------
1 | 5
1 | 6
1 | 7
2 | 6
2 | 7
3 | 6

查询:数组 [1,2]

我想选择 S 中在 T 列中具有值 1 AND 2 的所有值。

所以在上面的例子中,我应该得到结果 (6,7),因为只有 6 和 7 列 T 的值是 1 和 2。

但我不想在我的结果中有 5,因为 5 在 T 列中没有 2。
我将如何在 Sequelize 中做到这一点?

最佳答案

how do i make (1,2) to be used as an array?



要么将作为逗号分隔文字连接的数组插入查询文本(变体 1),要么将数组连接到一个字符串文字中并将其作为参数传输到查询中(变体 2)。

变体 1
SELECT s
FROM sourcetable
WHERE t IN (1,2)              -- separate filter values
GROUP BY s
HAVING COUNT(DISTINCT t) = 2  -- unique values count

变体 2
SELECT s
FROM sourcetable
WHERE FIND_IN_SET(t, '1,2')   -- separate filter values
GROUP BY s
HAVING COUNT(DISTINCT t) = 2  -- unique values count

如果 (s,t) 是唯一的,则可以删除 DISTINCT 关键字。

关于sql - 在 sequelize 中,如何选择与我正在搜索的所有值匹配的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60827769/

相关文章:

sequelize.js - Sequelize中定义belongsTo关系时as和foreignKey的区别

mysql - Sequelize LIKE 不适用于 WHERE 子句

postgresql - 均衡 : comparing parent column and child column in where clause inside include

node.js - Node Sequelize postgres 方言不断为类型 : Sequelize. INTEGER 创建 INTEGER 类型而不是 SERIAL 类型的 id 和 autoincrement: true

mysql - 如果相等则插入mysql

mysql - 对mysql结果的 bool 运算

sql - 无法在存储过程中调用存储过程

mysql - 从两个表中选择,但仅选择其中一列中的最大值

sql - 向 Oracle 中插入多行

sequelize.js - 如何更新直通表中的属性?