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

MYSQL子集操作

邢飞白
2023-03-14
问题内容

有没有办法实现以下目标:

SELECT *
FROM tb_values
WHERE (value1, value2, value3) SUBSET_OF
    ( SELECT value
      FROM tb_value
      WHERE isgoodvalue = true
    )

更多信息:
我有一个称为项目的表。每个项目都有标签。一个标签可以被多个项目共享。有一个名为projectTagMap的映射表。现在,用户可以使用标签来过滤项目。使用UI上的复选框选择标签。因此,用户选择几个标签来过滤项目。应该从包含用户选择的所有标签的项目表中选择项目。


问题答案:

从您的伪代码中,我猜您想检查一个(动态)值列表是否为所提供的另一个列表的子集SELECT。如果是,则将显示整个表格。如果没有,则不会显示任何行。

这是实现该目标的方法:

SELECT *
FROM tb_values
WHERE 
    ( SELECT COUNT(DISTINCT value)
      FROM tb_value
      WHERE isgoodvalue = true
        AND value IN (value1, value2, value3)
    ) = 3

*OP解释后 *更新

SELECT *
FROM project
  JOIN 
    ( SELECT projectid
      FROM projectTagMap
      WHERE isgoodvalue = true
        AND tag IN (tag1, tag2, tag3)
      GROUP BY projectid
      HAVING COUNT(*) = 3
    ) AS ok
    ON ok.projectid = project.id


 类似资料:
  • 题目 Given a set of distinct integers, nums, return all possible subsets. Note: The solution set must not contain duplicate subsets. For example, If nums = [1,2,3], a solution is: [ [3], [1], [2],

  • sdiff key1 key2...keyN 返回所有给定key的差集 sdiffstore dstkey key1...keyN 同sdiff,并同时保存差集到dstkey下

  • sunion key1 key2...keyN 返回所有给定key的并集 sunionstore dstkey key1...keyN 同sunion,并同时保存并集到dstkey下

  • sinter key1 key2...keyN 返回所有给定key的交集 sinterstore dstkey key1...keyN 同sinter,但是会同时将交集存到dstkey下

  • 本文向大家介绍Go语言操作mysql数据库简单例子,包括了Go语言操作mysql数据库简单例子的使用技巧和注意事项,需要的朋友参考一下 Go语言操作数据库非常的简单, 他也有一个类似JDBC的东西"database/sql" 实现类是"github.com/go-sql-driver/mysql" 使用过JDBC的人应该一看就懂 对日期的处理比较晦涩,没有JAVA流畅:

  • 在R中,我有一个列表,由12个子列表组成,每个子列表本身由5个子发布者组成,如下所示 列表和子列表 在本例中,我想为每个子列表提取信息“MSD”。 我可以提取每种使用方法的级别“统计信息” 这很有效。它给了我子列表“statistics”中包含的所有值,但是,对于每个列表,我想向下一级,因为我对其他数据(如MSerror、Df等)不感兴趣。。。。。只有MSD 我试过了 还有许多人没有成功。 如果我