Aiuto INSERT INTO... ON DUPLICATE KEY UPDATE

  • Creatore Discussione Creatore Discussione ciopin
  • Data di inizio Data di inizio

ciopin

Utente Attivo
26 Mar 2010
59
0
0
Ciao a Tutti,

Vi scrivo perchè avrei bisogno di una mano per capire come sistemare un lavoro. Ti spiego.

io ho una tabella con i campi

nome, cognome, email, cell, città, annonascita, fonte1, fonte2, fonte3

in questa tabella io importerò una serie di N utenti provenienti da una delle 3 fonti. quello che però potrebbe capitare è che un utente è contemporanemante sia nella fonte 1 che nella fonte 2 ( o fonte 3). La mia eseigenza è quella di importare il mio primo blocco di utenti e poi
importare il mio 2 blocco facendo una INSERT INTO... ON DUPLICATE KEY UPDATE. Cioè io dovrei, dato un csv con n utenti che hanno i campi di cui sopra, importarli nella mia tabella e

1) inserirli se sono nuovi record
2) updatare il campo fonte se la mail (che deve essere la chiave primaria) esiste già

Esempio: nel mio db c'è il record

Luca Paterno [email protected] 3345688558 Milano 1975 sito ND ND

Nel csv io ho gà questo nominativo che però proviene dalla fonte 2 perciò nn farò la insert ma l'update e alla fine avrò

Luca Paterno [email protected] 3345688558 Milano 1975 sito campagnax ND

In linea teorica è questo che vorrei/dovrei fare..ma come posso? Mi aiuti?

Grazie Mille in anticipo.
 
ciao
da quello che so (non ho quasi mai usato on duplicate) ma credo che debba essere qualcosa del genere (da verificare quale è la key)
PHP:
<?php
//....
$query="INSERT INTO tabella (nome, cognome, email, cell, citta, annonascita, fonte1, fonte2, fonte3)
		VALUES('$nome', '$cognome','$email','$cel','$citta', '$annonascita','$fonte1','$fonte2','$fonte3') 
		ON DUPLICATE KEY
		UPDATE nome='$nome',
		cognome='$cognome',
		email=$email',
		cell='$cel',
		citta='$citta',
		annonascita='$annonascita',
		fonte1='$fonte1',
		fonte2='$fonte2',
		fonte3='$fonte3'";
//......
?>
comunque prova a dare un occhio a:
https://www.mrw.it/mysql/articoli/meno-query-grazie-insert-on-duplicate-key-update_1020.html

però non so se possa funzionare con l'inport
 

Discussioni simili