Въз основа на вашата актуализация на вашия въпрос можете да го направите по този начин
UPDATE t1 JOIN
(
SELECT id, GROUP_CONCAT(DISTINCT value ORDER BY value) value
FROM t2
GROUP BY id
) q
ON t1.id = q.id
SET t1.value = q.value
Резултат:
+------+-------+| ID | стойност |+------+-------+| 1 | 1,2,3 |+------+-------+
Ето го SQLFiddle демонстрация
АКТУАЛИЗАЦИЯ: Въз основа на вашите коментари, които отново промениха въпроса ви. За да можете да актуализирате ограничен низ от стойности в t1
въз основа на стойности в t2
ще ви е необходима помощ от таблица с числа (сбор), за да разделите t1.value
в движение. Можете лесно да създадете такава таблица като тази
CREATE TABLE tally(n INT NOT NULL PRIMARY KEY);
INSERT INTO tally (n)
SELECT a.N + b.N * 10 + 1 n
FROM
(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a
,(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b
ORDER BY n
Този скрипт създава таблица с поредица от числа от 1 до 100, което ще позволи ефективно разделяне на до 100 разделени стойности. Ако имате нужда от повече или по-малко, можете лесно да коригирате скрипта.
Сега да актуализирате t1.value
можете да направите
UPDATE t1 JOIN
(
SELECT id, GROUP_CONCAT(value ORDER BY value) value
FROM
(
SELECT id, SUBSTRING_INDEX(SUBSTRING_INDEX(t1.value, ',', n.n), ',', -1) value
FROM t1 CROSS JOIN tally n
WHERE n.n <= 1 + (LENGTH(t1.value) - LENGTH(REPLACE(t1.value, ',', '')))
UNION
SELECT id, value
FROM t2
) v
GROUP BY id
) q
ON t1.id = q.id
SET t1.value = q.value
Ако приемем, че имате в t1
резултатът от актуализацията ще бъде
<преди>| ID | СТОЙНОСТ ||----|---------|| 1 | 1,2,3,4 |Ето го SQLFiddle демонстрация
Всичко казано в дългосрочен план по-добре преразгледайте своята схема на база данни и нормализирайте данните си . Това ще ви изплати много време, като позволи нормално поддържане и запитване към вашите данни.