我想将大量值从特定行和特定日期复制到同一行,但复制到另一个日期。我已经使用SQL UPDATE SET函数和两个不同的表进行了尝试,但是SET将仅使用第一个值并将其复制到正确的日期列。

在此图片上,您可以看到结果:
mysql - MySQL将多个行条目复制到另一个位置-LMLPHP

这是我尝试过的查询之一:

UPDATE Test_tab t
SET t.testValue =
    (SELECT testValue
    FROM Test_tab
    WHERE testDate > '2015-10-01' AND testDate < '2015-10-31'
        LIMIT 1)
WHERE t.testDate  > '2015-11-01' AND t.testDate  < '2015-11-31'

最佳答案

你可以这样尝试

CREATE PROCEDURE your_proc()
BEGIN
 DECLARE cont INTEGER;
 SET cont = 0;
 SET max = SELECT count(*) FROM test_tab;
  WHILE cont < max DO
   UPDATE Test_tab t SET t.testValue =(SELECT testValue FROM Test_tab WHERE testDate >'2015-10-01' AND testDate <'2015-10-31'
   LIMIT cont, 1) WHERE t.testDate > '2015-11-01' AND t.testDate < '2015-11-31'
   SET cont = cont + 1;
  END WHILE;
END;

关于mysql - MySQL将多个行条目复制到另一个位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33981588/

10-11 04:53