检查多列值

Can*_*ncü 1 mysql sql-match-all

我正在尝试获取某些多个col2值的col1值.例如:我想看到col2的"1,2,3,4"值的col1值(在col1中为"1").col2的"1,2"的另一个例子:col1值是"1,2".我如何设法在SQL语法中执行此操作?

示例图片

ype*_*eᵀᴹ 5

你想要什么称为关系分裂.有几种方法可以实现它.检查此问题,该问题针对类似问题有十多种不同的解决方案 - 包括基准测试:如何在多次通过关系中过滤SQL结果

这是其中一种方式(假设(col1, col2)组合是唯一的):

SELECT col1 
FROM tableX 
WHERE col2 IN (1, 2, 3, 4)
GROUP BY col1
HAVING COUNT(*) = 4            --- the size of the above list
Run Code Online (Sandbox Code Playgroud)

另一个:

SELECT t1.col1 
FROM tableX AS t1
  JOIN
     tableX AS t2
         ON  t2.col1 = t1.col1
         AND t2.col2 = 2
  JOIN
     tableX AS t3
         ON  t3.col1 = t1.col1
         AND t3.col2 = 3
  JOIN
     tableX AS t4
         ON  t4.col1 = t1.col1
         AND t4.col2 = 4
WHERE t1.col2 = 1
Run Code Online (Sandbox Code Playgroud)