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

使用where语句批量更新mysql

微生乐
2023-03-14
问题内容

如何批量更新mysql数据?如何定义这样的事情:

UPDATE `table` 
WHERE `column1` = somevalues
SET  `column2` = othervalues

具有一些值,例如:

VALUES
    ('160009'),
    ('160010'),
    ('160011');

和其他值:

VALUES
    ('val1'),
    ('val2'),
    ('val3');

也许用mysql是不可能的?一个PHP脚本?


问题答案:

在这种情况下,最简单的解决方案是使用ON DUPLICATE KEY UPDATE构造。它的工作速度非常快,并且可以轻松完成工作。

INSERT into `table` (id, fruit)
    VALUES (1, 'apple'), (2, 'orange'), (3, 'peach')
    ON DUPLICATE KEY UPDATE fruit = VALUES(fruit);

或使用CASE建筑

UPDATE table
SET column2 = (CASE column1 WHEN 1 THEN 'val1'
                 WHEN 2 THEN 'val2'
                 WHEN 3 THEN 'val3'
         END)
WHERE column1 IN(1, 2 ,3);


 类似资料:
  • 问题内容: 我试图用大约50,000行10列填充Java中的resultSet,然后使用的方法将它们插入到另一个表中。 为了使过程更快,我进行了一些研究,发现在将数据读入resultSet时,fetchSize起着重要的作用。 如果fetchSize太低,可能会导致到服务器的行程过多,而fetchSize太高则会阻塞网络资源,因此我做了一些尝试,并设置了适合我的基础结构的最佳大小。 我正在阅读此r

  • 问题内容: 我已经设法在SQLAlchemy中使用批量插入,例如: 我现在需要的是等效的更新。我已经试过了: 期望每一行都根据“ id”字段进行更新,但是它不起作用。我以为是因为我没有指定WHERE子句,但是我不知道如何使用字典中包含的数据指定WHERE子句。 有人可以帮我吗? 问题答案: 阅读文档的“插入,更新和删除”部分。以下代码将帮助您入门:

  • 我想使用Spring的HibernateTemplate(Hibernate 5.1)执行数据库批量更新。 HibernateTemplate提供以下接口:。 我的查询是更新实体项集合项。属性id=?其中项目。id in( 。 我遇到了很多麻烦,想问一下使用HibernateTemplate的正确方法是什么 上述查询导致弃用警告HQ第1行第172列附近出现位置参数 将上述查询替换为JPA样式的参数

  • 我有一个遗留代码,不允许使用预先准备好的语句。它使用Spring JDBC和更新查询。要求更新100000行。我有一张地图,上面有行号和需要在特定列中更新的值。 下面是我的当前代码: 我需要将其更改为批量执行,以便在for循环之后,我可以在一次DB命中中执行它。 对于这个需求,使用spring JDBC批处理更新的最佳方式是什么?

  • 问题内容: 在WHERE子句中有使用SELECT语句描述的名称吗?这是好/不好的做法吗? 这会是更好的选择吗? 它远没有那么优雅,但是运行起来比以前的版本要快。我不喜欢它,因为它在GUI中没有非常清晰地显示(并且SQL初学者需要理解它)。我可以将其分为两个独立的查询,但是随后事情变得混乱了…… 注意:我不仅需要日期和分数(例如姓名) 问题答案: 称为相关子查询。它有它的用途。

  • 问题内容: 我有这些表和值: 我想使用表1中的值及其各自的ID更新表2中的所有值。 有没有办法通过简单的SQL查询来做到这一点? 问题答案: 运行选择以确保它是您想要的 更新 另外,请考虑使用,以便在需要时可以将其回滚,但请在满意时再进行确认。