使用每个单独行的多个“where”子句更新多行

2024-05-27

我正在尝试像这样更新我的表:

Update MyTable 
SET value     = 1 
WHERE game_id = 1,
      x       =-4,
      y       = 8

SET value     = 2 
WHERE game_id = 1,
      x       =-3,
      y       = 7

SET value     = 3 
WHERE game_id = 2,
      x       = 5,
      y       = 2

我可以做一个foreach()但这将发送超过 50 个单独的查询,速度非常慢。 这就是为什么我希望将其合并为 1 个大查询。

(我确实使用id对于每一行,但组合game_id, x and y是我用来识别我需要的行的。 )

codeIgniter 中的 update_batch() 函数如下所述:使用 CodeIgniter 更新批次 https://stackoverflow.com/questions/6264955/update-batch-with-codeigniter很有帮助并且几乎完美,但它只允许 1 个 where 子句,您不能(据我理解和尝试)输入具有多个 where 子句的数组。

我也检查过这个问题:MYSQL UPDATE SET 在同一列上但具有多个 WHERE 子句 https://stackoverflow.com/questions/9368505/mysql-update-set-on-the-same-column-but-with-multiple-where-clauses但它只允许只包含一个不同的 WHERE 子句的多行更新,而我需要多个 WHERE 子句! :)

答案可以是简单的 SQL 或使用 php(和 CodeIgniter)或以不同的方式。我希望以任何可能的方式解决这个问题;)

我真的可以使用建议/帮助! =D


尝试一下使用CASE

Update  MyTable 
SET     value = CASE 
                     WHEN  game_id = 1 AND x = -4 AND y = 8 THEN 1
                     WHEN  game_id = 1 AND x = -3 AND y = 7 THEN 2
                     WHEN  game_id = 2 AND x =  5 AND y = 2 THEN 3
                     ELSE  value 
                END
WHERE   game_ID IN (1,2,3) AND  -- the purpose of this WHERE clause
        x IN (-4, -3, 5) AND    -- is to optimize the query by preventing from
        y IN (8,7,2)            -- performing full table scan.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用每个单独行的多个“where”子句更新多行 的相关文章

  • sql server 按组排名

    问题看似简单 但我却无法理解 这是针对 sql 服务器的 what I have in a table What I need as a output cksum id cksum id 2162514679 204 2162514679
  • 如何在 PostgreSQL 中使用具有多个值的 SQL LIKE 条件?

    有没有更短的方法来查找多个匹配项 SELECT from table WHERE column LIKE AAA OR column LIKE BBB OR column LIKE CCC 这个问题适用于 PostgreSQL 9 1 但如
  • 如何从 PostgreSQL 中的时间戳列值提取一天中的时间(或小时)?

    我正在尝试从 PostgreSQL 中的 时间戳 列中提取一天中的时间 这是我的做法 但是 太糟糕了 知道如何做得更好吗 SELECT date part hour date demande text hours date part min
  • 在 SQL 数据库中存储“列表”的最正确方法是什么?

    因此 我读了很多关于如何将多个值存储到一个列中是一个坏主意 并且违反了数据标准化的第一条规则 令人惊讶的是 这不是 不要谈论数据标准化 所以我需要一些帮助 目前我正在为我工 作的地方设计一个 ASP NET 网页 我想根据此人所属的 Act
  • 对多个数据库执行 SQL 查询

    我知道我的帖子与该论坛中的其他帖子的标题非常相似 但我真的找不到我需要的答案 这是我的问题 我的 Windows Server 上运行着 SQL Server 在我的 SQL Server 中 我有大约 30 个数据库 它们都具有相同的表和
  • 将第三个表链接到多对多关联中的桥接表

    设计这个数据库的正确方法是什么 这是我设置表格的方式 我在名为 教师 的表和名为 仪器 的表之间存在多对多关系 然后我有一个连接两者的桥接表 我想将另一个表与 BRIDGE 表关联起来 意思是乐器 老师的组合 该表有 3 行 指定老师可以教
  • 在服务器上找不到本地主机或 phpMyAdmin:如何修复?

    我按照安装说明进行操作PHP MySQL and PHPMyAdmin 但是当我尝试访问时http localhost phpmyadmin 我收到此错误 未找到 在此找不到请求的 URL phpmyadmin 服务器 然后我尝试访问loc
  • 比特纳米。重置mysql根密码

    我如何重置 MySQL 中的 root 密码和帐户 因为我按照如何为其他服务器授予权限的说明操作 并且意外地将 root 用户 Mysql 绑定到其他 IP 地址 现在看来我无法在 localhost 上以管理员身份登录 Thanks 您有
  • gem install mysql:无法构建 gem 本机扩展 (Mac Lion)

    我为 Mac OS X Lion 安装了 MySQL 5 5 27 来自 dmg 现在我尝试安装 mysql gem gem install mysql Building native extensions This could take
  • 重命名重复行

    这是我的问题的一个简化示例 我有一个表 其中有一个包含重复条目的 名称 列 ID Name 1 AAA 2 AAA 3 AAA 4 BBB 5 CCC 6 CCC 7 DDD 8 DDD 9 DDD 10 DDD 进行 GROUP BY 操
  • 使用 ADODB 连接从关闭的工作簿中检索数据。某些数据被跳过?

    我目前正在编写一些代码 可以通过 ADODB 连接访问单独的工作簿 由于速度的原因 我选择了这种方法而不是其他方法 下面是我的代码 Sub GetWorksheetData strSourceFile As String strSQL As
  • 初级SQL部分:避免重复表达式

    我对 SQL 完全陌生 但我们可以说StackExchange 数据浏览器 https data stackexchange com 我只想按信誉列出前 15 位用户 我写了这样的内容 SELECT TOP 15 DisplayName I
  • 内连接不重复,可以吗?

    鉴于这两个表 表 A1 有两行具有相同的值 a A1 a a 表 A2 有两行主键值为 A B 它们与 a 关联 A2 PK col2 A a B a 我想要的是 A1 和 A2 的连接并得到这个结果 a A a B 显然内连接在这里不起作
  • 自加入表

    我有一张像这样的桌子 Employee name salary a 10000 b 20000 c 5000 d 40000 我想获取所有工资高于A工资的员工 我不想使用任何嵌套或子查询 在采访中被问及并暗示是使用自连接 我真的不知道如何实
  • Bugzilla 中分离客户端的基本权限

    我正在尝试配置一个 Bugzilla 实例 这将允许我的客户登录并为其正在开发 维护的网站提交错误 例如 我创建了 2 个名为 TestProject TestProject2 的产品和一个名为 TestClient 的用户 我想要实现的是
  • Google BQ:运行参数化查询,其中参数变量是 BQ 表目标

    我正在尝试从 Linux 命令行为 BQ 表目标运行 SQL 此 SQL 脚本将用于多个日期 客户端和 BQ 表目标 因此这需要在我的 BQ API 命令行调用中使用参数 标志 parameter 现在 我已经点击此链接来了解参数化查询 h
  • 在 postgres 查询中使用列表

    我有一个动态列表 list a b c d 所以长度可能会改变 我想在查询中比较这些列表值 select from student where name in all the list values 我想将列表值传递到此查询中 我怎样才能做
  • 如何使用 LAMBDA 表达式在 LINQ 中执行 IN 或 CONTAINS?

    我有以下 Transact Sql 我正在尝试将其转换为 LINQ 并且很挣扎 SELECT FROM Project WHERE Project ProjectId IN SELECT ProjectId FROM ProjectMemb
  • SQL Server 上的语法错误

    这可能是一个愚蠢的语法错误 但我只是继续阅读我的程序 但我无法弄清楚我的错误在哪里 消息 156 第 15 级 状态 1 第 41 行关键字附近的语法不正确 为了 这是我的代码 alter procedure LockReservation
  • 索引数量越少意味着插入、更新和删除速度更快? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

  • 如何根据状态从父表和子表获取数据,其中外键每行具有不同的状态

    我有 2 个具有外键关系的表 情况是我有一个case and a case有很多revisions 和每个revision有自己的status 如果仅更改外键表状态的特定行 我想获取父表数据和子数据 Table Case id case n
  • 将多列列表拆分为单独的行

    我有一个像这样的数据框 df pd DataFrame key 1 2 3 4 col1 apple orange pineapple guava orange apple col2 087 799 681 078 816 018 key
  • 提交用于 Tensorflow 对象检测的 Google Cloud ML 训练作业时出现错误消息

    尝试提交 Tensorflow 对象检测任务的 Google Cloud ML 训练作业 我正在遵循官方指南 https github com tensorflow models blob master research object de
  • 浮点除以零的行为

    Consider include
  • 用 Python 编写网站

    我非常精通 PHP 但想尝试一些新的东西 我也了解一点Python 足以完成基础知识的基础知识 但还没有在网页设计类型的情况下使用过 我刚刚写了这个 它有效 usr bin python def main print Content typ
  • 无法验证模式并正确使用additionalProperties

    我正在尝试验证我的 JSON 架构并使用 extraProperties false 来确认没有其他属性 我的responseBody看起来像这样 id 1234567890987654 email email protected cdn
  • 如何检查 dom 元素是否可聚焦? [复制]

    这个问题在这里已经有答案了 许多 DOM 元素都是可聚焦的 带有 tabIndex 的 div 输入元素等 有没有比检查无数不同情况更简单的方法来检查元素是否可聚焦 有一个 jQuery 方法吗 从这里回答 翻译 哪些 HTML 元素可以获
  • 如何使用 TestNG 按名称和通配符运行类?

    我有很多带有 TestNG 测试的类 并且我有一个方便的命名约定 我想制作只运行以 Xyz 开头的所有类的测试套件 有什么办法可以做到这一点吗 我希望它的工作方式是使用像这样的通配符
  • React Native:约束 Animated.Value

    我正在制作一个 React Native 应用程序 场景是这样的 我希望用户能够平移视图 但不完全按照他想要的方式 我想约束视图被拖动时可以移动的距离由用户 我已经阅读了两者的文档PanResponder and AnimatedAPI 多
  • 在 UITableViewCell 中动态显示秒表计时器

    我想保存计时器值并从新的开始显示它UITableViewCell但我的问题是 我成功地能够在第一个单元格上显示秒表计时器 但是当我尝试在其中添加新单元格时UITableView所以我的计时器设置为第二个单元格 我无法定义如何让我的第一个计时
  • 处理ios设备方向

    我的 uiview 遇到问题 具体取决于设备方向 我遇到的主要问题是 UIDeviceOrientationFaceUp UIDeviceOrientationFaceDown 扰乱了我的视图 我只想支持纵向和横向 左右 因此如果设备改变方
  • MPI C++ 矩阵加法、函数参数和函数返回

    过去两年我一直在网上学习C 最后我需要深入研究MPI 我一直在搜索 stackoverflow 和互联网的其余部分 包括http people sc fsu edu jburkardt cpp src mpi mpi html http p
  • 我们如何在 swift 中使用 NSSelectorFromString ?

    我不明白为什么这总是失败 有什么帮助吗 显然 我不明白如何NSStringFromSelector作品 下面是我的代码 class ViewController UIViewController override func viewDidL
  • 如何在 SQL Server 2005 Management Studio 中创建 SQL Server 2005 存储过程模板?

    如何在 SQL Server 2005 Management Studio 中创建 SQL Server 2005 存储过程模板 我认为另一个小金块将帮助人们开发并提高数据库开发的效率 当我开发软件解决方案时 我非常喜欢存储过程和函数 我喜
  • 如何反汇编、修改然后重新组装 Linux 可执行文件?

    无论如何 这可以做到吗 我使用过 objdump 但它不会产生我所知道的任何汇编器都可以接受的汇编输出 我希望能够更改可执行文件中的指令 然后对其进行测试 我认为没有任何可靠的方法可以做到这一点 机器代码格式非常复杂 比汇编文件还要复杂 实
  • 如何使用 JavaScript 修复 JSON 中位置 1 处的意外标记 o?

    这个问题似乎已经得到解答 但我的情况有所不同 我每次都会在 JSON 中的位置 1 处收到意外的标记 o 谁能帮我解决这个问题 谢谢 这是我的代码 function send let detail new FormData detail a
  • 将字符串转换为字节数组时会发生什么

    我认为这是一个新手类型的问题 但我已经很理解了 我可以找到很多关于如何用各种语言将字符串转换为字节数组的帖子 我不明白的是逐个字符地发生了什么 据我所知 屏幕上显示的每个字符都由一个数字表示 例如它的 ascii 代码 我们现在可以坚持使用
  • 如何从游标类中检索数据

    我需要知道如何从游标检索数据 我需要这个 因为铃声管理器以光标对象的形式返回所有音频文件 我需要知道如何检索这些值 Anbudan 获得 Cursor 对象后 您可以执行以下操作 if cursor moveToFirst do Strin
  • 在字符串中每个字母后面添加数字

    我有几个具有固定格式的字符串 格式为一个字母后跟一个数字 例如 A3B1C7D1 但是 如果字母后面的数字为 1 则字符串将写为 A3BC7D 我想做的是插入数字 1 然后将字符串转换为A3BC7D to A3B1C7D1 我的示例数据是
  • 使用每个单独行的多个“where”子句更新多行

    我正在尝试像这样更新我的表 Update MyTable SET value 1 WHERE game id 1 x 4 y 8 SET value 2 WHERE game id 1 x 3 y 7 SET value 3 WHERE g