Com base na atualização da sua pergunta, você pode fazer assim
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
Resultado:
+------+-------+ | id | value | +------+-------+ | 1 | 1,2,3 | +------+-------+
Aqui está SQLFiddle demonstração
ATUALIZAÇÃO: Com base em seus comentários, que mudaram sua pergunta novamente. Para poder atualizar uma string delimitada de valores em
t1
com base em valores em t2
você precisará da ajuda de uma tabela de números (tally) para dividir t1.value
em tempo real. Você pode criar facilmente essa tabela como esta 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
Esse script cria uma tabela com uma sequência de números de 1 a 100 que permitirá dividir efetivamente até 100 valores delimitados. Se você precisar de mais ou menos, pode ajustar facilmente o script.
Agora para atualizar
t1.value
você pode fazer 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
Supondo que você tenha em
t1
| ID | VALUE | |----|-------| | 1 | 1,4 |
resultado da atualização será
| ID | VALUE | |----|---------| | 1 | 1,2,3,4 |
Aqui está SQLFiddle demonstração
Tudo isso dito a longo prazo é melhor você reconsiderar seu esquema de banco de dados e normalizar seus dados . Isso valerá a pena, permitindo manter e consultar normalmente seus dados.