2012-04-30 7 views
9

ho un po 'di dati che assomiglia a questo:MySQL Rimuovere primi due caratteri di tutti i campi

C:10 
R:200 
N/A 
E:3 
N/A 
N:77 

Sto cercando di rimuovere i primi due caratteri per ogni riga, e saltare le file con N/A ho ho cercato di capire come farlo con SUBSTRING ma non ho avuto fortuna.

UPDATE d1 
SET d1_val = SUBSTRING(d1_val, 1, LENGTH(d1_val)2) 
+2

Invece di 'N/A', si dovrebbe usare' null' (non una stringa, il vero null) nel database. – kapa

risposta

19

Prova

UPDATE d1 
SET d1_val = SUBSTRING(d1_val, 3) 
WHERE d1_val <> 'N/A' 
4

di query più sicuri per quanto riguarda multipli esegue sta usando LIKE '_:%':

UPDATE d1 
SET d1_val = SUBSTRING(d1_val, 3) 
WHERE d1_val LIKE '_:%' 

cambierà ogni linea che si presenta come C:10, E:100 ecc ma non 10, 100 dopo una precedente esecuzione della query.

(Supponendo che c'è sempre una lettera prima di : Se più -. Utilizzare LIKE '%:%')