首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一次为多行设置MySQL更新集

问一次为多行设置MySQL更新集
EN

Stack Overflow用户
提问于 2017-08-22 17:23:56
回答 2查看 642关注 0票数 0

我通过命令行和UPDATE database.table SET column = REPLACE (column, item1, item2);重复使用MySQL,每个查询都包含"item1,item2“的不同数据。大约有20个不同的查询,在一些测试和其他工作中,我将使用相同的集合至少3次,我想知道是否有一个查询可以使用,即我如何将所有20个版本组合成一个,以节省自己的时间?

例如,下面是我运行的独立查询,我想知道是否可以将它们组合到一个查询中。

代码语言:javascript
复制
mysql> update quiz_node_results set nid = replace (nid, 184461, 5784);
Query OK, 2057 rows affected (0.22 sec)
Rows matched: 33650  Changed: 2057  Warnings: 0

mysql> update quiz_node_results set nid = replace (nid, 184457, 5785);
Query OK, 2891 rows affected (0.17 sec)
Rows matched: 33650  Changed: 2891  Warnings: 0

mysql> update quiz_node_results set nid = replace (nid, 184462, 5786);
Query OK, 2189 rows affected (0.31 sec)
Rows matched: 33650  Changed: 2189  Warnings: 0

想象一下,总共有20个,而不仅仅是这3个。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-22 17:32:29

我不能完全确定我是否理解了您想要做的事情,但是您可以将这组语句写入一个纯文本文件,然后将该文本文件提供给MySQL。

文本文件(假设其名称为test.sql):

代码语言:javascript
复制
update quiz_node_results set nid = replace (nid, 184461, 5784);
update quiz_node_results set nid = replace (nid, 184457, 5785);
...

当然,在文本文件中,您必须添加"prologue“命令(如选择正确的数据库和其他要正确初始化的内容(如果需要))。

然后,在命令行中(不是在MySQL客户端中,而是在Linux / Windows命令行中):

代码语言:javascript
复制
mysql -p < test.sql

如果我明白你想做什么,请让我知道…

票数 0
EN

Stack Overflow用户

发布于 2017-08-22 17:40:09

代码语言:javascript
复制
drop procedure doiterate;
DELIMITER $$
CREATE PROCEDURE doiterate(p1 INT)
BEGIN
DECLARE VAR_ITEM1 INT DEFAULT 184457;
DECLARE VAR_ITEM2 INT DEFAULT 5784;
  label1: LOOP
    SET p1 = p1 + 1;
    IF p1 < 20 THEN 
        update quiz_node_results set nid = replace (nid, VAR_ITEM1, VAR_ITEM2);
        SET VAR_ITEM1 := VAR_ITEM1+1;
        SET VAR_ITEM2 := VAR_ITEM2+1;
        ITERATE label1; 
    END IF;
    LEAVE label1;
  END LOOP label1;
END;

您可以简单地创建简单的过程,该过程迭代20次并使用UPDATE QUERY更新值。

注意:这里我假设你已经订购了需要更新的记录。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45813703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档