MySQL удаляет первые два символа всех полей

у меня есть некоторые данные, что выглядит так:

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

Я пытаюсь удалить первые два символа для каждой строки и пропустить строки с N/A Я пытался выяснить, как это сделать с SUBSTRING но не повезло.

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

2 ответов


попробовать

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

более безопасный запрос относительно нескольких исполнений использует LIKE '_:%':

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

он изменит каждую строку, которая выглядит как C:10, E:100 etc. но не 10, 100 после выполнения одного предыдущего запроса.

(предполагая, что всегда есть одна буква перед :. Если больше - используйте LIKE '%:%')