例如,我有下表:
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/