MySQL 将多个行条目复制到另一个位置
MySQL copy multiple row-entries to another position
我想将特定行和特定日期的大量值复制到同一行,但另一个日期。我已经尝试使用 SQL UPDATE SET 函数和两个不同的表,但 SET 只会使用第一个值并将其复制到正确的日期列。
这张图你看结果:
这是我尝试过的查询之一:
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;
我想将特定行和特定日期的大量值复制到同一行,但另一个日期。我已经尝试使用 SQL UPDATE SET 函数和两个不同的表,但 SET 只会使用第一个值并将其复制到正确的日期列。
这张图你看结果:
这是我尝试过的查询之一:
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;