MySQL 查询 WHERE 包括 CASE 或 IF?

2024-04-17

奇怪的问题。

我的查询看起来像

SELECT DISTINCT ID, `etcetc`, `if/elses over muliple joined tables` FROM
    table1 AS `t1`
    # some joins, eventually unrelated in that context
WHERE
# some standard where statements, they work/

CASE 
    WHEN `t1`.`field` = "foo" THEN (`t1`.`anOtherField` != 123 AND `t1`.`anOtherField` != 456 AND `t1`.`anOtherOtherField` != "some String")
    WHEN `t1`.`field` = "bar" THEN `t1`.`aSecondOtherField` != 12345
    END

#ORDER BY CASE etc. Standard Stuff

显然 MySQL 返回了错误的行计数,我认为我的问题出在 WHERE ... CASE 语句的逻辑中。也许用括号?也许我应该去找接线员OR并不是AND?我应该第二个WHEN即使我只比较一个字段,也包括括号吗?我应该使用IF并不是CASE?

基本上我想排除一些具有特定值的行如果字段中有特定值foo or bar

我会尝试一切,但是需要花费大量时间才能完成该查询...:(

编辑:只是为了笔记,我的问题是,我忘记了ELSE in my CASE.

CASE 
    WHEN `t1`.`field` = "foo" THEN (`t1`.`anOtherField` != 123 AND `t1`.`anOtherField` != 456 AND `t1`.`anOtherOtherField` != "some String")
    WHEN `t1`.`field` = "bar" THEN (`t1`.`aSecondOtherField` != 12345)
    ELSE TRUE
END

该解决方案也有效,但发布的解决方案更好......


您应该在这里使用 OR 而不是 CASE:

WHERE
(`t1`.`field` = "foo" AND `t1`.`anOtherField` != 123 AND `t1`.`anOtherField` != 456 AND `t1`.`anOtherOtherField` != "some String")
OR
(`t1`.`field` = "bar" AND `t1`.`aSecondOtherField` != 12345)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL 查询 WHERE 包括 CASE 或 IF? 的相关文章

  • MYSQL枚举:@rownum,奇偶记录

    我问了一个关于为查询结果创建临时 虚拟 ID 的问题 mysql 和 php 查询结果的临时 虚拟 ID https stackoverflow com questions 4063998 mysql php temporary virtu
  • 我可以停止 CakePHP 获取查询的所有行吗?

    我正在使用 CakePHP 和 modelName gt find 调用选择相当多的行 可能是数百行 通常 在 PHP MySQL 中这当然不会成为问题 因为您在 while 循环中获取它们 但是 CakePHP 将所有行加载到一个数组中
  • 使用MySqlCommand参数时如何查看命令字符串?

    代码如下 MySqlCommand cmd new MySqlCommand SELECT FROM DB name here WHERE some field some value cmd Parameters AddWithValue
  • 甚至阻止超级管理员/dba 删除/更新表?

    我需要确保一些关键任务表永远不会被删除或编辑 唯一可能的操作是从中读取数据 并且 dba 可以添加更多行 就是这样 现在为了增加安全性 我想阻止甚至 dba 都能够删除 更改记录 所以基本上没有人可以删除或更改记录 也没有超级管理员 这些表
  • 为什么 R 3.6.0 在计算表达式 ("Dogs" < "cats") 时返回 FALSE?

    我有一些复杂的代码 但我不会向您展示这些代码 而是要提取问题的本质 评价 dogs lt cats 这应该评估为FALSER 3 6 也是如此 评价 Dogs lt cats 这应该评估为TRUE因为 D 的 ASCII 代码是 68 而
  • Rails 3.2.2 mysql2 适配器错误

    我在让 mysql2 适配器与最新版本的 Rails 一起工作时遇到了麻烦 我刚刚生成了一个新项目 将以下内容添加到我的 gemfile 中 gem mysql2 lt 0 3 7 然后当然跑了 bundle install 我还修改了我的
  • 将 MySQL 与实体框架结合使用 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在 Google 上找不到任何有关实体框架 MySQL 的信息 所以我希望有人知道 已发布 获取适用于
  • 为什么这个简单的 MySQL 查询不返回该行?

    我在表中有一行users与用户名test 但由于某种原因 此查询返回空结果集 SELECT id FROM users WHERE username test AND id null 但是 如果我删除 id null段 查询返回结果id 1
  • 在学说监听器中插入元素

    我已经设置了一个学说监听器 它在不同的数据库操作上触发并创建一个日志实体并将其插入数据库 class FOO public function onFlush OnFlushEventArgs args foreach args gt get
  • mysql 日期与 date_format 的比较

    我用谷歌搜索并尝试了几种方法来比较日期 但不幸的是没有得到预期的结果 我的当前记录状态如下 mysql gt select date format date starttime d m Y from data date format dat
  • 数组在浏览器中给出 null 作为输出

    我测试了我的 Java 程序是否正确从 MySQL 检索数据 然而 问题出在Java和JSP之间 JSP页面无法从java程序中检索数据 请帮助我 它给出的输出为空 null null hai 我的jsp页面 div style heigh
  • UUID 作为 MySQL id 列的默认值

    我正在尝试向 MySql 8 0 17 中的现有表添加一列 该列需要包含 UUID 我正在尝试将其设置为默认值 这是我正在执行的语句 ALTER TABLE myTable ADD COLUMN UUID varchar 36 NOT NU
  • 资源 ID #4 PHP MYSQL

    result mysql query SELECT indvsum sum1 indvsum sum2 FROM SELECT SUM Cash AS sum1 SUM Bank AS sum2 FROM players indvsum e
  • 删除并加入同一个表

    是否可以执行连接同一个表的删除查询语句 我尝试过各种连接 内部 左侧 但没有运气 mysql 返回错误 我需要的例子 DELETE a FROM t1 AS a INNER JOIN t1 AS b USING some field b W
  • 如何在 Flex 中对 PHP 字符串使用换行符

    这是我的 MXML
  • 如何使用mysqli准备好的语句?

    我正在尝试准备好的语句 但下面的代码不起作用 我收到错误 致命错误 在非对象上调用成员函数execute var www prepared php 第 12 行
  • 使用java将数据插入mySQL表

    I have a predefined table in a mySQL database 我正在努力将从用户输入的数据保存到数据库中 但我似乎无法将任何数据保存在数据库中 使用以下代码 我尝试更新数据库的第一行 ID 1 到 OTHER
  • PDO 和 IS NOT NULL 函数

    我是 PDO 新手 我想知道是否有相当于 mysql 语句的语句来检查参数是否不为空 例如 SELECT FROM table WHERE param IS NOT NULL 我试过这个 pdo gt prepare SELECT FROM
  • 计算链接上的点击次数(不带 onclick)[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有诸如此类的链接 a href h
  • SQL Server 与 MySQL:CONTAINS(*,'FORMSOF(THESAURUS,word)')

    我很震惊 当我在 SQL Server 中看到查询非常简单时 我花了 3 4 天弄清楚如何在 mysql 中实现词干提取 和同义词搜索 Select from tab where CONTAINS FORMSOF THESAURUS wor

随机推荐

  • MySQL 调试工具查询速度慢? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有哪些免费工具可以用来查找MySQL的慢查询 除了记录慢速查询之外 需要详细分析慢查询 谢谢 凯瑟尔 U
  • 多处理管理器出现 EOFError

    我有很多客户端通过 0MQ 连接到服务器 我有一个管理器队列 用于工作人员池与每台客户端计算机上的主进程进行通信 在一台拥有 250 个工作进程的客户端计算机上 我几乎立即看到一堆 EOFError 它们发生在执行 put 时 我预计大量的
  • 有没有办法在 Spark 中随机排列集合

    我需要用 2 2 10 9 行打乱文本文件 有没有办法将它加载到 Spark 中 然后并行地洗牌每个分区 对我来说 在分区范围内洗牌就足够了 然后将其溢出回文件 要仅在分区内进行洗牌 您可以执行以下操作 rdd mapPartitions
  • 这个校验和算法可以改进吗?

    我们有一个非常旧的 不受支持的程序 可以跨 SMB 共享复制文件 它有一个校验和算法来确定文件内容在复制之前是否已更改 该算法似乎很容易被愚弄 我们刚刚找到了一个示例 其中两个文件完全相同 除了单个 1 更改为 2 之外 返回相同的校验和
  • 无法使用 mailR 包通过 Outlook.com 发送电子邮件

    我想用 mailR 用于发送带有身份验证的电子邮件通知的包 这个包的支持者是 rJava 并使用 Java 设施 我注册了 Outlook com 帐户 这是代码 library mailR email lt send mail from
  • 读取 3 个字节作为整数

    如何读取 3 个字节的整数 struct module 是否提供类似的东西 我可以读取 3 个字节并添加一个额外的 x00 然后将其解释为 4 字节整数 但这似乎没有必要 struct 模块没有 3 字节整数的选项 所以我认为附加 x00
  • 从 oauth 身份验证获取电子邮件 (Microsoft)

    如何从微软帐户获取电子邮件 我正在执行以下操作 public ActionResult ExternalLoginCallback string returnUrl AuthenticationResult result OAuthWebS
  • 在 R 中使用 geom_rect 进行时间序列着色

    我正在尝试对时间序列图的某个部分进行着色 有点像经济衰退阴影 类似于底部的图表 这篇关于 Excel 中的经济衰退阴影的文章 https research stlouisfed org tips 200511 recession bars
  • Java ArrayList 和 LinkedList - 在末尾添加元素实现细节

    我对为什么 arraylist 比链表更快的理解是 使用 arraylist 基本上只需要一个操作 更新末尾数组元素的引用 而使用链表你必须做更多的事情 例如创建一个新节点 更新 2 个引用 遍历链表并更新最后一个节点以指向新节点等 但是我
  • 如何使用函数减少值

    嘿 实际上我制作了一个 html 页面 其中有两个部分 当我单击第一部分时 数字会增加 当我单击第二部分时 第二部分中的数字会增加 我使用了 javascript 现在我在每个页面的底部做了一个按钮 我希望当我单击该按钮时 数字应该减少我尝
  • Google Drive Android API:已删除的文件夹在查询中仍然存在

    运行下面的代码 我在平板电脑上使用 Google Drive Android API 创建一个文件夹 几秒钟后 从 PC 上的远程位置删除该文件夹 当我重新运行代码时 API 仍然认为 MyFolder 存在 即使它已被删除并且在平板电脑上
  • 计算非图的所有可能突变[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我需要根据非常具体的配方构建一个非图解算器 对于每一行 我需要计算所有可能的突变 然后检查该行是否仍然使谜题有效 对于那些不知道非图的人 这
  • Xcode Storyboard 和 xib 连接

    我有一个包含许多视图控制器的故事板项目 我创建了一个名为 connecter h connector m 现在我可以将此类连接到一个 xib 文件吗 请帮我 您可以创建XIB当你创建时connector h and connector m通
  • React:如何模拟 Auth0 以使用 Jest 进行测试

    我正在使用 React react create app 和 TypeScript 使用 Auth0 进行登录 我想用 Jest 编写测试 我发现这个资源基本上是唯一谈论模拟 Auth0 对象的资源 所以我的代码如下所示 import Re
  • 如何将值从 Fragment 传递到 Activity

    我是 Android 开发新手 我试图将值从片段传递到活动 但经过多次尝试后我无法得到答案 这是我的片段 public OtpGentation int OTP this OTP OTP public OtpGentation String
  • 对行的最后一个字段进行排序

    对行列表进行排序 对每行的最后一个字段进行排序 的最简单方法是什么 每行可以有可变数量的字段 就像是 sort k 1 是我想要的 但 sort 1 不采用负数来从末尾而不是从开头选择字段 我还希望能够选择字段分隔符 编辑 要为问题添加一些
  • 在 Azure 应用服务任务 v3 中使用 Web 部署时出现 ERROR_FILE_IN_USE

    类似的问题已被问过多次 但大多数答案都是旧的 并且可能只部分适用 此问题特定于使用 Azure 应用服务部署 任务版本 3 通过 Azure DevOps Azure Pipelines 使用 Web 部署 无法将 Web 包部署到应用服务
  • 如何判断 PostgreSQL 的 Autovacuum 是否在 UNIX 上运行?

    如何判断是否自动清理守护进程在Postgres 9 x中是运行和维护数据库集群的吗 PostgreSQL 9 3 确定 Autovacuum 是否正在运行 这是 UNIX 上的 Postgres 9 3 特有的 对于 Windows 请参阅
  • 在 Codeigniter 中将数组保存到会话

    我在 Codeigniter 中将数组保存到会话数据时遇到问题 var dump this gt session gt userdata data output is boolean false array array 0 gt abc 1
  • MySQL 查询 WHERE 包括 CASE 或 IF?

    奇怪的问题 我的查询看起来像 SELECT DISTINCT ID etcetc if elses over muliple joined tables FROM table1 AS t1 some joins eventually unr