我有一些看起来像这样的数据:
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)
尝试
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 '%:%'
)
采用SUBSTRING(column_name, character_to_remove)
解决方案,
SUBSTRING(d1_val, 3)
注意:您可以在 SELECT 或 UPDATE 语句中使用它
UPDATE d1
SET d1_val = SUBSTRING_INDEX(d1_val , ":",-1);
也完成这项工作,保持“N/A”不变。