In base all'aggiornamento della tua domanda, puoi farlo in questo modo
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
Risultato:
+------+-------+ | id | value | +------+-------+ | 1 | 1,2,3 | +------+-------+
Ecco SQLFiddle demo
AGGIORNAMENTO: Sulla base dei tuoi commenti che hanno cambiato di nuovo la tua domanda. Per poter aggiornare una stringa delimitata di valori in t1
in base ai valori in t2
avrai bisogno dell'aiuto di una tabella di numeri (di conteggio) per dividere t1.value
al volo. Puoi facilmente creare una tabella come questa
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
Quello script crea una tabella con una sequenza di numeri da 1 a 100 che consentirà di dividere efficacemente fino a 100 valori delimitati. Se hai bisogno di più o meno puoi facilmente modificare lo script.
Ora per aggiornare t1.value
puoi fare
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
Supponendo che tu abbia in t1
| ID | VALUE | |----|-------| | 1 | 1,4 |
l'esito dell'aggiornamento sarà
| ID | VALUE | |----|---------| | 1 | 1,2,3,4 |
Ecco SQLFiddle demo
Detto questo, a lungo termine è meglio che riconsideri il tuo schema db e normalizzi i tuoi dati . Ciò ti ripagherà molto consentendo di mantenere e interrogare normalmente i tuoi dati.