mysql - 通过 IN 子句选择,但行为应类似于 AND

标签 mysql sql select in-clause

<分区>

IN 子句的作用类似于 OR,

select from table where id in (1, 2, 3)

如果组中的任何项目匹配则选择(如果 id 为 1、2 或 3 则返回)。


我需要类似的东西,但基于两列,只有当 ColumnA 具有 ColumnB 的所有值时它才应该返回。

例如,

  ColumnA         ColumnB
---------------------------
    1               a
    2               b
    3               c

    1               a
    1               b
    1               c


select CoumnA from table where CoumnA in every ColumnB of (a, b, c);
 -> 1 --since only 1 has all a, b and c

select CoumnA from table where CoumnA in every ColumnB of (b);
 -> 1 --since 1 has b
 -> 2 --since 2 has b

等等。我知道 in every of 不是一个合适的关键字,我只是想展示一个例子。

我无法尝试任何事情,因为我无法理解这个逻辑。

最佳答案

尝试只使用 IN(a,b,c)count(distinct id) = 3 的 id 分组。

关于mysql - 通过 IN 子句选择,但行为应类似于 AND,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21474273/

相关文章:

java - 实例化 hibernate 配置会抛出错误 : Exception in thread "main" java. lang.NoClassDefFoundError: javax/xml/bind/JAXBException

javascript - 将 PHP MySQL 调用输入 Charts.js

php - mysql连接问题

sql - 带/不带 "ORDER BY"的 CosmosDB sql 查询返回不同数量的项目

SQL做一个插入然后抛出异常

mysql - 如何在 MySQL 的 INSERT 语句中使用 SELECT MAX?

mysql - 如何根据不同的列数据进行选择

php - 替换 mySQL REPLACE 查询中的正斜杠

mysql - 数据库索引对MySQL中正则表达式查询的影响

sql - 已列出但不可选择的 Postgresql 表