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

Posted

技术标签:

【中文标题】MySQL删除所有字段的前两个字符【英文标题】:MySQL Remove first two characters of all fields 【发布时间】:2012-05-10 11:18:51 【问题描述】:

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

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)

【问题讨论】:

您应该在数据库中使用NULL(不是字符串,真正的空值)而不是N/A 这能回答你的问题吗? How do I delete the first 3 characters in mysql? 【参考方案1】:

试试

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

【讨论】:

【参考方案2】:

关于多次执行的更安全的查询是使用LIKE '_:%'

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

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

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

【讨论】:

【参考方案3】:
UPDATE d1
SET d1_val = SUBSTRING_INDEX(d1_val , ":",-1);

也完成这项工作,保持“N/A”不变。

【讨论】:

【参考方案4】:

使用SUBSTRING(column_name, character_to_remove)

解决方案,

SUBSTRING(d1_val, 3)

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

【讨论】:

以上是关于MySQL删除所有字段的前两个字符的主要内容,如果未能解决你的问题,请参考以下文章

删除 mysql 查询中字符串字段的重音符号

用mysql查询出字段中的前几个字

删除两个 MySQL 大表中的匹配记录

SQL如何查找和删除MYSQL数据库中包含特定字符串的记录

mysql:如何删除字段开头或结尾的字符

请问在mysql中如何删除 两个字段相同的数据?