Come sostituire valori in un campo per più oggetti.

  • Creatore Discussione Creatore Discussione Marco_88
  • Data di inizio Data di inizio

Marco_88

Utente Attivo
4 Dic 2014
150
0
0
Roma
batwebit.blogspot.it
Buongiorno a tutti, come da oggetto avrei la necessità di sostituire il valore in un campo per più oggetti di un database mysql. Mi spiego meglio in maniera pratica: Ho circa 300 prodotti che devono passare dallo stato "in acquisizione" (che è il nome del campo della tabella) allo stato "in vendita". Ora per evitare di farlo a mano per ogni singolo oggetto vorrei sapere se esiste il modo di farlo in un colpo solo, magari tramite la riga di comando mySql di phpmyadmin...grazie
 
premessa, conosco ms sql non mysql ma,

prova la query su alcuni articoli prima di eseguirla sui 300 e accertati che funzioni bene,

se puoi fai un backup del database che stai modificando,
essendo però sicuro di ripristinare la situazione precedente dal backup che hai appena fatto

questa è la query necessaria

Codice:
START TRANSACTION;

UPDATE 
  NomeTabella 
SET 
  `in vendita` = `in acquisizione`,   `in acquisizione` = ''
WHERE 
  condizione che identifica i 300 prodotti
AND 
  `in acquisizione` != '';

// se non ti ha dato errori nell'esecuzione conferma l'update con
COMMIT;

// oppure in caso di errore annulla l'operazione con
ROLLBACK;

avendo lo spazio nel nome delle colonne (in ven... in acq...) tutti questi nomi devono essere tra
backwards quotes (or backticks)

`in acquisizione` = '' deve essere `in acquisizione` = 0 se contiene un valore numerico
idem nella clausola where

START TRANSACTION da manuale mysql, disattiva l'autocommit
che viene ripristinato al COMMIT o ROLLBACK

ma, ancora, cerca di essere sicuro delle azioni che fai !
 

Discussioni simili