当前位置: 首页 > 面试题库 >

使用MySQL IN子句作为全包(AND而不是OR)

郑宇
2023-03-14
问题内容

我在网站上列出了商品。每个项目都有几个附加的类别,我们称这些类别为电影流派。在高级搜索中,我让人们选中他们喜欢的类型的复选框,它弹出与所选任何类型匹配的电影列表。

我有这样的查询:

AND column IN ('5', '8', '9')

这里的问题是,如果您选择“动画”和“恐怖”,则会得到一堆迪斯尼卡通(“动画”)和SAW系列(“恐怖”)。

我想将搜索范围包括在内,因此它只会返回与所有选定流派都匹配的结果,因此将同时标记为“动画”和“恐怖”的项目。

item_id和category_id对存储在单独的表中。因此,对于ID为55的电影,可能会有4种流派,所以会有4行具有item_id =
55,并且category_id等于4个类别ID。


问题答案:

编辑 :修改了我的答案,使其更接近OP的编辑问题。

select i.MovieName
    from item i
        inner join ItemCategory ic
            on i.item_id = ic.item_id
    where i.item_id = 55
        and ic.category_id in ('5','8','9')
    group by i.MovieName
    having count(distinct ic.category_id) = 3


 类似资料:
  • 主要内容:Oracle AND运算符简介,Oracle AND算符的例子在本教程中将学习如何使用Oracle 运算符来组合两个或更多的布尔表达式。 Oracle AND运算符简介 运算符是一个逻辑运算符,它组合了布尔表达式,如果两个表达式都为真,则返回。 如果其中一个表达式为假,则运算符返回。 运算符的语法如下所示: 下表说明了使用运算符合并,和值时的结果 - 值 TRUE FALSE NULL TRUE TRUE FALSE NULL FALSE FALSE FAL

  • 我以前有一个类似于Rails的查询: 它生成sql查询,如下所示: 现在我想将其更改为使用而不是。我创建了这个: 现在,当我使用空数组时,我得到以下错误:

  • 问题内容: 使用BETWEEN子句或使用<= AND> =比较之间在性能上有区别吗? 即这两个查询: …和 在此示例中,year列是带有索引的VARCHAR2(4)。 问题答案: 这两个示例查询之间没有性能差异,因为这只是表示 包含 范围比较的一种简便方法。Oracle解析条件时,它将自动扩展为单独的比较子句: 前任。 …将自动变为:

  • 我在做一些初学者编码的挑战,其中一个挑战是制作一个反转给定字符串的程序。它对单词起作用,但当我输入单词时,中间有空格,程序只会反转输入的第一个单词。 我谷歌了“java中带空格的反向单词”,发现了这个: > 我可以修改我自己的代码,使它在不遵循上述代码的情况下颠倒一个句子吗?我的代码:

  • 我正在学习亚当·简斯的合唱团教程。 数据是用这个代码块加载的 而准备就绪被定义为 我把这个序列理解为 首先-创建一个名为promises的数组,其中第一项是来自此链接的已解析json,第二项是来自该文件的id/值对的映射 第二,获取promise变量中的所有promise,如果成功,则触发函数ready,如果失败,则不执行任何操作 如果这是对的,那么相对于这样的东西有什么优势呢?我用伪代码写这个因

  • 输入:我叫鲍勃。 输出:Bob的名字是My。 我看过很多关于如何颠倒句子中的每个单词和单词顺序的例子。然而,我认为我还没有看到我想要的例子。这个论坛没有什么帮助,因为它只关注句子开头和结尾的双引号:如何颠倒字符串中的单词,但保持标点符号在正确的位置? 我试过的 上面的代码没有按预期工作。我可能可以将每个字符串转换为char并使用Character。isAlphabet()或可能是使用模式? 我需要