Ciao king size slim ,

in pratica su una tabella dovrei cercare tutti i record con i campi uguali e settare flag=0 sui record trovati. Tutti i record trovati, eccetto l'ultimo in ordine cronologico.
come si vede nella tabella esempio che ho fatto
l'id 1 e il 4 hanno i campi uguali. il prodotto finale deve essere che il 4 rimane con flag=1 e che l'1 (e tutti gli altri precedenti se ci fossero) dovrebbero avere flag=0

Ora ho risolto comunque.
Non so se la strada è la più breve, ma l'sql funziona e fa quello che deve fare :-)
Codice PHP:
UPDATE tab t1
SET
t1
.flag 0
WHERE
t1
.flag AND t1.record < (

  
SELECT t2.record FROM (
    
SELECT *
    
FROM tab 
    WHERE flag 
1
  
) AS t2
  WHERE
  t2
.field1 t1.field1 AND
  
t2.field2 t1.field2 AND
  
t2.field3 t1.field3 AND
  
t2.id != t1.id

);