Corsi on-line

Aggiungere contenuto ad un campo testuale

Eseguire un’interrogazione basata su un UPDATE può essere altrettanto rischioso rispetto ad una query DELETE; soprattutto quando si devono gestire tabelle di grandi dimensioni, è molto complesso controllare preventivamente le caratteristiche dei dati che si stanno manipolando, un aggiornamento potrebbe quindi eliminare un’informazione inportante.
Si analizzi per esempio la seguente instruzione:

UPDATE utenti SET url = 'http://' + url LIMIT 1;

La query presentata porterà alla cancellazione accidentale del dato precedentemente conservato all’interno del campo “url”, questo perché l’operatore matematico “+” non provvedera a concatenare la stringa ‘http://’ con il contenuto già presente nel campo.

La query vista sopra, in realtà, è frutto di un errore molto comune circa l’utilizzo del simbolo “+”. Per evitare che un problema del genere si verifichi, è necessario utilizzare la funzione CONCAT (magari combinandola con una piccola ricerca sul record interessato):

UPDATE utenti SET url = CONCAT('http://', url) WHERE url NOT LIKE 'http://%' LIMIT 1;

In questo modo il DBMS saprà di dover aggiungere (“CONCAT”) l’argomento passato alla funzione dove lo stesso argomente non sia presente all’inizio del contenuto del campo.

Post correlati
I più letti del mese
Tematiche