giuliopowa95 ha scritto:
No in questa tabella non c'è nessuna chiave primaria.
Se non c'è una chiave primaria, come pensi di identificare univocamente il record sorgente e quello destinazione?
Solitamente, se non hai già un attributo che si presta naturalmente a fungere da chiave, si aggiunge un campo INT autoincrementante e si usa quello come chiave primaria.
Una volta fatto ciò, dovresti riuscire a risolvere il tuo problema con una query tipo:
UPDATE tabella
SET campo = (SELECT campo
FROM tabella
WHERE chiave = n2)
WHERE chiave = n;
EDIT:
Nel tuo caso, potresti usare come chiave primaria la terna id_product, id_shop e id_lang, a meno che non hai bisogno di mantenere più record che hanno la stessa terna (può succedere ad esempio se vuoi mantenere uno storico nella stessa tabella dei dati attuali, per cui anziché cancellare i record setti un flag visibile/invisibile (e magari un reference al record con i dati precedenti)).
Poi si può discutere dei vantaggi/svantaggi di tale soluzione rispetto ad una con chiave surrogata, ma nel tuo caso permetterebbe di esprimere la query in modo più naturale.