【问题标题】:MySQL Remove first two characters of all fieldsMySQL删除所有字段的前两个字符
【发布时间】: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)

【问题讨论】:

标签: mysql substring


【解决方案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 语句中使用它

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-10-03
          • 1970-01-01
          • 2021-05-26
          • 2015-12-03
          • 2011-08-10
          • 1970-01-01
          • 2011-10-21
          • 2011-01-09
          相关资源
          最近更新 更多