【问题标题】:MySQL: How do I search and replace chars at the beginning of a stringMySQL:如何搜索和替换字符串开头的字符
【发布时间】:2017-03-15 04:46:23
【问题描述】:

我正在尝试使用完整的国际代码搜索和替换手机号码。 所以行有 07970000007 的地方用 +447970000007 替换开头

UPDATE tblMemberImportClub 
SET msisdn = REPLACE(msisdn, '07', '+447') 
WHERE INSTR(msisdn, '07') = 1;

但这也替换了其他匹配项:

+4479700000+447

我认为我不能使用 TRIM,因为某些行已经以 +447 开头,因此也不需要任何更新。

提前感谢您的帮助。

【问题讨论】:

    标签: mysql replace


    【解决方案1】:
    SELECT  
    
    CONCAT(
                       REPLACE(
                                 LEFT('07970000007',2), '07', '+447'
                       ),      
                       SUBSTRING('07970000007', 3, CHAR_LENGTH('07970000007'))
           )as replaced
    

    【讨论】:

      【解决方案2】:

      使用LIKEINSERT()

      UPDATE tblMemberImportClub 
          SET msisdn = INSERT(msisdn, 1, 2, '+447') 
          WHERE msisdn LIKE '07%';
      

      INSERT() 是一个字符串函数,可以完全替换您指定的字符(请参阅here)。

      【讨论】:

      • 谢谢,有帮助。
      猜你喜欢
      • 2012-07-04
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 2018-01-02
      相关资源
      最近更新 更多