【问题标题】:Mysql Select Id in with And operatorMysql Select Id in with And 运算符
【发布时间】:2016-12-22 04:35:30
【问题描述】:

我想从表中获取数据,其中 Id 应该在查询中如下所示,而不是 or 我会应用 and 运算符,所以让我们说 ID IN (5 AND 4 AND 3)

SELECT * FROM table WHERE id IN (5,4,3,1,6)

有没有可能得到这样的数据。

这是示例查询

SELECT PM.ContentID, PM.Author, PM.Title, PM.Journal, PM.Year, PM.Category, PM.StudyLocation, PM.FileURL from PublishedContentMaster PM join  TopicContentMapping T ON T.ContentID=PM.ContentID where PM.ContentID='100' AND T.TopicID IN (16,7) 

所以我想要 16 和 17 中都存在的那个,这就是为什么我需要而不是运算符的原因。

【问题讨论】:

  • 请显示样本数据和期望的结果。
  • ID怎么可能同时有5,4,3,1,6的值?在给定的实例中,ID 可以具有任何单个值,而不是全部。你的问题不清楚。请改写它。
  • @MoishKamble 我正在使用过滤器,所以假设我选择主题一,它只会搜索 ID 1,如果我选择两个或更多,反之亦然
  • 这正是OR 的工作原理。你能显示查询的输出和预期的输出吗?
  • @MoishKamble 输出很简单,显示 ContentID:1 作者:Ali 标题:测试期刊:A 年:2012 类别:A。所以我希望如果这仅在主题 ID 16 中不应该显示当我们在 TopicID 中提供 16 和 17 时

标签: mysql where-clause and-operator


【解决方案1】:

我怀疑您需要一个聚合查询和一个 having 子句。它通常看起来像这样:

select x
from t
where id in (5, 4, 3, 1, 6)
group by x
having count(*) = 5;

在这种情况下,x 将是您希望包含五个值的五行的列。

【讨论】:

    猜你喜欢
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 2014-04-22
    • 2019-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    相关资源
    最近更新 更多