首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql -使用regexp更新表

mysql -使用regexp更新表
EN

Stack Overflow用户
提问于 2011-12-20 12:18:09
回答 3查看 1.8K关注 0票数 0
代码语言:javascript
复制
SELECT id FROM people WHERE id REGEXP 'id-(\d)*';

结果

代码语言:javascript
复制
id-1
id-2
id-3

上面的查询可以工作,但当我运行下面的更新查询时,它不会影响任何行

代码语言:javascript
复制
UPDATE people SET id = REPLACE(id, 'id-(\d)*', 'id-4');
0 row(s) affected

有人能给我解释一下,有什么问题吗?

EN

回答 3

Stack Overflow用户

发布于 2011-12-20 12:23:23

REPLACE()不搜索正则表达式。尝尝这个。但是一些数据库支持regexp_replace()函数。

This works for oracle, PostgreSQLIt doesn't work for MySQL

代码语言:javascript
复制
 UPDATE people  SET id  = regexp_replace(id ,'id-(\d)*' , 'id-4');
票数 1
EN

Stack Overflow用户

发布于 2011-12-20 12:21:46

REPLACE不使用正则表达式,只使用普通字符串。您要搜索的是文字字符串'id-(\d)*',而不是后跟任意位数的'id-'。想必,您的数据库中没有这样奇怪的字符串。

票数 0
EN

Stack Overflow用户

发布于 2011-12-20 12:23:08

REPLACE()进行文本替换。在MySQL中没有正则表达式替换。最好使用一些服务器端脚本来执行REGEX。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8570754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档