MYSQL子集操作

2024-02-17

有没有办法实现类似的目标:

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

UPDATED经过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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MYSQL子集操作 的相关文章

  • 我可以在一个查询中更新/选择表吗?

    我需要在查看页面时选择数据并更新 视图 列 有没有一种方法可以在一个查询中执行此操作 或者我是否必须使用不同的查询 如果您不想 不需要使用事务 则可以创建一个存储过程 该过程首先更新视图计数 然后选择值并将其返回给用户
  • SQL Server 转换选择一列并将其转换为字符串

    是否可以编写一条从表中选择列并将结果转换为字符串的语句 理想情况下 我希望有逗号分隔的值 例如 假设 SELECT 语句看起来像这样 SELECT column FROM table WHERE column lt 10 结果是一列包含值的
  • #1045 - 用户“root”@“localhost”的访问被拒绝(使用密码:YES)

    这可能看起来多余 但我无法找到正确的解决方案 我无法使用 mysql 控制台登录 mysql 它要求输入密码 但我不知道我实际输入的内容 有办法获取密码或更改密码吗 这就是我的 config inc 的样子 当我尝试打开 phpmyadmi
  • Oracle:如果表存在

    我正在为 Oracle 数据库编写一些迁移脚本 并希望 Oracle 有类似于 MySQL 的东西IF EXISTS构造 具体来说 每当我想删除 MySQL 中的表时 我都会执行类似的操作 DROP TABLE IF EXISTS tabl
  • 如何使用 PHP 从 MySQL 检索特定值?

    好吧 我已经厌倦了 过去一周我花了大部分空闲时间试图解决这个问题 我知道 SQL 中的查询已更改 但我无法弄清楚 我能找到的所有其他帖子似乎都已经过时了 如果有人能帮助我 我将非常感激 我想做的就是使用手动输入数据库的唯一 密码 来检索行的
  • 如何解决 MySQL innodb 在 TRUNCATE TABLE 上“等待表元数据锁”?

    在 GitLab CI 服务器中运行包含数百个应用程序单元测试的测试套件 运行 10 次测试后 不知怎的 它总是卡在等待 TRUNCATE TABLE 上的表元数据锁上 这是一个拆卸步骤 我知道SHOW ENGINE INNODB STAT
  • 从一个sql服务器选择到另一个sql服务器?

    我想将一台服务器 Data Old S1 中的一个表 T1 在 DB1 中 中的数据选择到另一台服务器 Data Latest S2 中的另一个表 T2 在 DB2 中 中的数据 我怎样才能做到这一点 请注意服务器的命名方式 查询也应该考虑
  • 使用包含空值列的 WHERE 子句的更新语句

    我正在使用另一个表中的数据更新一个表上的列 这WHERE子句基于多个列 并且某些列为空 根据我的想法 这个空值是什么throwing off你的标准UPDATE TABLE SET X Y WHERE A B陈述 See 这个 SQL 小提
  • “警告:mysql_query():提供的参数不是有效的 MySQL-Link” - 为什么?

    我的代码有什么问题吗 我不断收到此错误 Warning mysql query supplied argument is not a valid MySQL Link resource in functions php on line 4
  • 与 FOREIGN KEY 约束冲突

    我有两张桌子 学术界 CREATE TABLE dbo R ACADEMIE ID ACADEMIE dbo IDENTIFIANT NOT NULL LC ACADEMIE CODE dbo LIBELLE COURT NOT NULL
  • INNER JOIN 可用作 SELECT,但不能用作 DELETE [重复]

    这个问题在这里已经有答案了 为什么这个有语法错误 DELETE FROM print mailing request pmr INNER JOIN person p ON p id pmr person AND p email LIKE T
  • 使用 xmlagg 时出现子查询错误和太多值

    我在连接许多大型表中的所有数据时遇到问题 我昨天对此提出了问题 但不幸的是 listagg 似乎不是一个好的选择 链接子查询返回多行 https stackoverflow com questions 54651144 subquery r
  • 在 MySQL 中创建布尔列并将 false 作为默认值?

    我想在 MySQL 中创建一个表boolean默认值为的列false 但它默认接受 NULL 你必须指定0 意思是假 或1 意思是 true 作为默认值 这是一个例子 create table mytable mybool boolean
  • SQL Server递归查询显示父级路径

    我正在使用 SQL Server 语句并有一张表 例如 item value parentItem 1 2test 2 2 3test 3 3 4test 4 5 1test 1 6 3test 3 7 2test 2 我想使用 SQL S
  • 如何使用 exec.Command 在 golang 中执行 Mysql 脚本

    您好 我正在尝试执行一个脚本以使用 Golang 将数据填充到数据库中 func executeTestScript cmd exec Command usr local mysql bin mysql h127 0 0 1 P3333 u
  • 按两列的最小值排序

    I use SQL Server 2008 R2 我需要按两列的最小值对表进行排序 该表如下所示 ID integer Date1 datetime Date2 datetime 我希望我的数据按至少两个日期排序 以这种方式对该表进行排序的
  • 部署 dacpac 所需的权限

    我正在尝试使用 sqlpackage exe 在租户上部署 dacpac 目前 我正在向将部署此功能的帐户授予 SysAdmin 或 db owner 权限 并且它工作正常 但在生产中 如果目标租户数据库属于其他应用程序 我可能无法获得这些
  • 如何在 MySQL 中创建查询以根据日期和独特字段减去连续行?

    基于SQL根据日期和另一列减去两行 https stackoverflow com questions 12310221 sql subtract two rows based on date and another column我有一个好
  • MySQL 中的 group_concat 性能问题

    我添加了一个group concat到一个查询并杀死了性能 添加之前和之后的解释计划是相同的 所以我对如何优化它感到困惑 这是查询的简化版本 SELECT curRow curRow 1 AS row number docID docTyp
  • 如何在SqlAlchemy中执行“左外连接”

    我需要执行这个查询 select field11 field12 from Table 1 t1 left outer join Table 2 t2 ON t2 tbl1 id t1 tbl1 id where t2 tbl2 id is

随机推荐

  • Java:将(长)对象转换为双精度的多种方法

    我有一个Object obj我知道实际上是一个long 在一些数学代码中我需要它作为double 直接将其转换为双倍安全吗 double x double obj 或者我应该先将其转换为 long 然后再转换为 double double
  • 具有多行的 NSTextFieldCell

    我需要显示一个包含多行且每行格式不同的 NSTextFieldCell 像这样的事情 Line 1 Title2号线 描述 我对 NSTextFieldCell 进行了子类化 但我不知道如何继续使用它 有任何想法吗 首先 你不have子类化
  • 将连接限制为一行

    我有以下查询 SELECT sum select count as itemCount SalesOrderItems price as amount rma as creditType Clients company as client
  • C在short和int之间转换的规则是什么?

    当使用 C 在 Short 和 int 之间进行转换时 我感到很困惑 我假设short是16位 int是32位 我用下面的代码进行了测试 unsigned short a 0xFFFF signed short b 0xFFFF unsig
  • 在 Win32 C++ 中创建 GUI

    我正在开发我的第一个 Windows 桌面应用程序 并且正在尝试找出创建该程序的 GUI 的最佳方法 我知道 我知道 考虑到有关该主题的数据量 我觉得问这个问题很愚蠢 然而 大多数答案似乎已经过时 我不确定它们是否适合我的特定项目 另外 W
  • 什么是测试中的软件故障? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在上软件测试的研究生课程 我们花了一整堂课来讨论故障 错误和故障之间的区别 我对测试中软件故障的定义不满意 你的定义是什么 您可能对此感兴趣
  • 何时使用 Vanilla JavaScript 与 jQuery?

    我注意到 在监视 尝试回答常见 jQuery 问题时 有一些使用 javascript 而不是 jQuery 的做法 实际上使您能够少写多做 同样的数量 并且还可能产生性能优势 一个具体的例子 this vs this 在引用被单击对象 i
  • Visual C++ 似乎对类的 POD 成员进行了零初始化,但它不应该这样做

    我有一堂这样的课 class TestClass public TestClass Note I wish not to initialize rawMemory for whatever reason int rawMemory 32 i
  • x86 上 Java 侵入性最小的编译屏障

    如果我有一个 Java 进程通过共享 ByteBuffer 或类似的方式与其他进程交互 那么 C C 中的编译器屏障的侵入性最小的等效项是什么 不需要可移植性 我对 x86 特别感兴趣 例如 我有 2 个进程根据伪代码读取和写入内存区域 p
  • 在 C# 中替换字符串中的所有特殊字符

    我想找到字符串中的所有特殊字符并用连字符 我正在使用下面的代码 string content foo bar regular expression replace 123 string pattern a zA Z regex patter
  • 将 PHP 字符串剪短

    你会如何把字符串剪短 这样它就不会进入 div 标签中的下一行例如我的message字符串包含以下内容 我们更喜欢可以回答的问题 而不仅仅是讨论 提供详细信息 写得清楚 简单 如果您的问题与此网站有关 请在元上提问 我想最好将其显示为 我们
  • 安装 hunspell 包

    我期待使用 pip 安装 hunspell 包 但它会抛出以下错误 Collecting hunspell Using cached hunspell 0 4 1 tar gz Building wheels for collected p
  • Ubuntu 18.04 服务器(Rails 6.0)上的“生产”环境缺少“secret_key_base”,尝试了多个主题

    这个话题有一个SOLUTION嵌入在最后 PROBLEM 我第一次在 Ubuntu 18 04 上的 VPS 上部署 Rails 应用程序 与 Nginx 一起 我遵循了很好的教程Gorails https www youtube com
  • 更改 HttpWebRequest 实例的 Uri?

    我有一个在事件中拦截的 HttpWebRequest 实例 我想在发送请求之前编辑 url 但我找不到执行此操作的方法 属性 RequestUri 是只读的 我想了几种方法 但似乎找不到可行的解决方案 使用反射来设置值 创建一个新请求 然后
  • Python - 在迭代字典列表时如何处理丢失的键? [复制]

    这个问题在这里已经有答案了 在下面的示例中 我迭代字典列表 并将 年龄 保存在列表中 然而 第二个字典没有键 年龄 在这种情况下 我希望将 null 值保存在列表中 关于如何实现这一目标有什么建议吗 my list age 0 name A
  • CHANGEM 的优雅矢量化版本(替代值) - MATLAB

    在Matlab 2012b中 有一个changem函数允许您用一组键指定的其他值替换矩阵的元素 替换数据数组中的值 http www mathworks com help map ref changem html jsessionid 7b
  • 来自另一个 bigDecimal.toString() 的 new BigDecimal 是否始终等于?

    在Java中 来自另一个bigDecimal toString 的new BigDecimal总是等于吗 例如 BigDecimal a new BigDecimal 1 23 BigDecimal b new BigDecimal a t
  • UIViewController 动画时方向错误

    为了使用 UISplitViewController 我在从一个视图控制器导航到另一个视图控制器时替换了窗口根控制器 为了在执行此操作时获得一些不错的过渡 我使用了如下的缩放效果 MyOtherViewController controll
  • SocketServer绑定多个服务器

    我正在尝试使用 python 的 SocketServer 模块绑定多个服务器 import SocketServer from SocketServer import BaseRequestHandler class HTTPSERVER
  • MYSQL子集操作

    有没有办法实现类似的目标 SELECT FROM tb values WHERE value1 value2 value3 SUBSET OF SELECT value FROM tb value WHERE isgoodvalue tru