2012-04-30 20 views
9

tengo algunos datos que se parece a esto:MySQL Eliminar primeros dos caracteres de todos los campos

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

Estoy intentando retirar los dos primeros caracteres para cada fila, y omita las filas con N/A tengo estado tratando de averiguar cómo hacer esto con SUBSTRING, pero no he tenido suerte.

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

en lugar de 'N/A', se debe utilizar' null' (no es una cadena, el real nulo) en su base de datos. – kapa

Respuesta

19

Trate

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

consulta más segura con respecto a múltiples ejecuta es el uso de LIKE '_:%':

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

Se va a cambiar cada línea que se parece a C:10, etc. E:100 pero no 10, 100 después de ejecutar una consulta previa.

(Suponiendo que siempre es una carta antes de : Si más -. Utilizar LIKE '%:%')

Cuestiones relacionadas