如何在SQLite中替换字符串?

时间:2012-02-01 14:25:56

标签: iphone objective-c ios sqlite

如何更新具有以下内容的表列:

/var/mobile/233KKFSDK3234/Documents/Page.jpg

并将其替换为

/Documents/Page.jpg

在SQLite中

注意:除/Documents/之外的所有文字都是动态的。

4 个答案:

答案 0 :(得分:0)

UPDATE table SET column = IF(
    POSITION('/Documents/' IN column),
    RIGHT(column, (LENGTH(column) - POSITION('/Documents/' IN column) - LENGTH('/Documents/') + 1)),
    column
)

如果找到模式,只保留出现的字符;否则,什么也不做(保持旧价值)。

答案 1 :(得分:0)

在ObjC中进行字符串处理,然后使用此查询。

update tablename set columnname = 'processedString' ;

根据您的要求更新

答案 2 :(得分:0)

您必须首先读取字符串并将其放入nsstring,然后从旧字符串生成新闻字符串,然后更新到db。

这里有生成新字符串的目标c代码。您可以使用其他答案进行数据库更新。

    NSString *originalString = @"/var/mobile/233KKFSDK3234/Documents/Page.jpg";

    NSRange documentsRage = [originalString rangeOfString:@"/Documents/"];

    NSString *newString = [NSString stringWithString:[originalString substringWithRange:NSMakeRange(documentsRage.location, [originalString length]-documentsRage.location)]];
    NSLog(@"newString:%@",newString);

答案 3 :(得分:0)

以下为我工作:

  

更新yourtable   SET yourfield = SUBSTR(yourfield,18);

..正如Bjoern在这个问题上所说: How to Update this data using SQL?