Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[MySQL]Copiare dati tra campi di una tabella tramite query

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

[MySQL]Copiare dati tra campi di una tabella tramite query

Postdi webpleasure » 17/10/12 08:19

Ciao a tutti, avrei bisogno di un consiglio per una query SQL
La query dovrà lavorare all'interno della stessa tabella "product" e copiare i dati dalla colonna "id_product" alla colonna "reference" se possibile aggiungendo un suffisso "COD" prima dell' id_product.
Ecco un esempio pratico:

ID = 1
in reference dovrà essere = COD1 (meglio ancora se COD00001 però le cifre dovranno essere sempre 5 non se se è fattibile)

ID = 1232
reference = COD1232 (o COD01232)

avendo più di 1500 campi da modificare un'aiutino sarebbe graditissimo! :D
Grazie!
webpleasure
Utente Junior
 
Post: 15
Iscritto il: 16/10/12 08:56

Sponsor
 

Postdi archimede » 17/10/12 11:14

Di che database stiamo parlando?

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi infinito1971 » 17/10/12 11:25

Ciao webpleasure,
premesso che non ho un db su cui effettuare ora una verifica, proverei una cosa del genere:
Codice: Seleziona tutto
UPDATE nome_tabella SET reference='COD'+id_product

Tieni presente che a seconda del db che utilizzi, potrebbe cambiare il concatenatore utilizzato; ad esempio, con Oracle al posto del simbolo + dovresti utilizzare il doppio pipe ||, mentre con MySQL dovresti utilizzare la funzione concat; ad ogni modo, prova ad effettuere un test come ti ho indicato e facci sapere.

Un saluto,
infinito1971
Questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!
Avatar utente
infinito1971
Utente Senior
 
Post: 531
Iscritto il: 01/08/02 21:22
Località: Napoli

Postdi webpleasure » 17/10/12 17:46

Grazie per le risposte, il fatto di non aver specificato il tipo di db in uso vi fa capire quanto sia inesperto.
L'interfaccia che utilizzo è phpmyadmin (se questa info può servire).
Mentre il DB è: Versione MySQL: 5.1.63-0+squeeze1.
La query quindi sarà?
Domanda, la query seguirà l'ordinamento della tabella giusto?
webpleasure
Utente Junior
 
Post: 15
Iscritto il: 16/10/12 08:56

Postdi webpleasure » 18/10/12 06:22

Rieccomi qui...allora la query suggerita da infinito non mi ha unito il suffisso COD all'ID ma mi ha semplicemente copiato l'ID in reference. Ho cercato degli esempi per il comando CONCAT ma non sono riuscito a riadattarli al mio caso :(
resto in attesa di altri suggerimenti :D
webpleasure
Utente Junior
 
Post: 15
Iscritto il: 16/10/12 08:56

Postdi archimede » 18/10/12 08:22

Codice: Seleziona tutto
UPDATE product
   SET reference = concat('COD', lpad(id_product, 5, '0'));

http://dev.mysql.com/doc/refman/5.1/en/ ... tions.html

HTH.

Alessandro

PS: tieni conto che memorizzare dei campi calcolati in una tabella è quasi sempre una cosa da evitare.
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi webpleasure » 18/10/12 17:55

Semplicemente perfetta!!!! Non credevo si potesse generare anche la lunghezza, grazie 1000! Quest'operazione è stata dovuta ad una mia dimenticanza successivamente non sarà necessaria in quanto con la creazione di nuovi prodotti inserirò al momento il codice. Grazie ancora!
webpleasure
Utente Junior
 
Post: 15
Iscritto il: 16/10/12 08:56


Torna a Programmazione


Topic correlati a "[MySQL]Copiare dati tra campi di una tabella tramite query":


Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite