“搜索和替换”中的regexp的sqlite3语法

时间:2010-10-16 10:42:07

标签: sqlite

我可以使用regexp列出来自Sqlite3数据库的命中,但使用regexp进行“搜索和替换”的语法是什么。

1 个答案:

答案 0 :(得分:4)

如果您考虑在替换字符串中使用反向引用,那是不可能的,AFAIK。你做了一个更新,如下所示:

UPDATE foo
   SET bar = <some expr including baz>
 WHERE baz REGEXP <regex>

但是,指定的表达式必须依赖传统的字符串函数,如replace(...)substr(...)(或您自己的extension functions)。无法调用REGEXP运算符找到的组。

编辑:这是一个具体示例,它将'STOCK ID: '列中前缀item_key后面的数字库存ID解释为库存号:

UPDATE staff
   SET stock_number = CAST(substr(item_key, 11) AS INTEGER)
 WHERE item_key REGEXP '^STOCK ID: \d+'