【问题标题】:SQLite: replace part of a string with another oneSQLite:用另一个字符串替换部分字符串
【发布时间】:2014-11-02 10:12:06
【问题描述】:

我有一个名为“tel”的列。此列有一些以(例如)“0511”开头的记录,我想将其更改为“0513”。什么是正确的查询?

【问题讨论】:

标签: sqlite


【解决方案1】:

你可以使用替换功能

 UPDATE table SET tel= replace( tel, '0511', '0513' ) WHERE tel LIKE '0511%';

查看SQLite核心函数here

编辑 如果您的电话号码的前 4 位数字后匹配。 例如 051121505113

  UPDATE table SET tel= replace(substr(tel,1,5), '0511', '0513' )||substr(tel,5) 
  WHERE tel LIKE '0511%';

【讨论】:

    【解决方案2】:
    UPDATE table
    SET tel = REPLACE(tell, '0511', '0513')
    WHERE tel like '%0511%' 
    

    【讨论】:

      【解决方案3】:

      如果字符串中存在“0511”的风险,您可以确保仅在字符串开头替换 0511,如下所示:

      UPDATE [table]
       SET [tel] = CASE WHEN 
        instr([tel], '0511') = 1  THEN 
          '0513' || substr([tel], 4)
        ELSE    
          [tel]
        END
      WHERE [tel] LIKE '0511%';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-25
        • 1970-01-01
        • 2022-12-28
        • 2012-05-18
        • 2011-08-10
        相关资源
        最近更新 更多