MySQL删除所有字段的前两个字符

时间:2012-04-30 19:03:00

标签: mysql substring

我有一些看起来像这样的数据:

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)

4 个答案:

答案 0 :(得分:24)

尝试

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

答案 1 :(得分:5)

有关多次执行的更安全查询正在使用LIKE '_:%'

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

在上一次查询运行后,它会更改看起来像C:10E:100等但不是10100的每一行。

(假设:之前总是有一个字母。如果更多 - 请使用LIKE '%:%'

答案 2 :(得分:1)

使用SUBSTRING(column_name, character_to_remove)

解决方案,

SUBSTRING(d1_val, 3)

注意:您可以在 SELECT 或 UPDATE 语句中使用它

答案 3 :(得分:0)

UPDATE d1
SET d1_val = SUBSTRING_INDEX(d1_val , ":",-1);

也执行此工作,保持“ N / A”不变。