Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL Aggiorna la prima istanza di un record

Questa tecnica unisce la tabella contro se stessa in una sottoquery, ma corrisponde solo a una riga (basata su contact_id e corrispondenza e-mail. Il trucco è che la sottoquery restituisce solo uno degli indirizzi email usando MIN, in teoria il primo in ordine alfabetico (non affidabile, ma hai detto che non importa).

L'ho testato con buoni risultati.

UPDATE 
  email 
  JOIN (SELECT contact_id, MIN(email) as email 
        FROM email GROUP BY contact_id) as singles 
  USING(contact_id, email) 
set is_primary=1;