gpt4 book ai didi

mysql - 为什么我的 sql REGEXP_REPLACE 没有更改所有匹配项?

转载 作者:行者123 更新时间:2023-11-29 07:19:03 27 4
gpt4 key购买 nike

我正在使用 mariadb 和这段代码:

UPDATE files SET file_source = REGEXP_REPLACE (file_source, 's:[1-9][1-9][1-9]|s:[1-9][1-9]|s:[1-9]', "s:12") WHERE type = 2;

我想更改所有 s: 后跟最多 3 个数字的列,并将其替换为 s:12

但是当我运行它时它说:

Query OK, 10012 rows affected (0.118 sec)
Rows matched: 10375 Changed: 10012 Warnings: 0

我不明白为什么?我怎么能看到什么没有改变,为什么?我的代码有错误吗?

此外,如果我运行两次,它会说 0 已更改,但根据我的理解,这段代码应该再次将所有内容更改为 s:12,即使它已经是 s:12还是我错了?

最佳答案

这很好用

Update Table1 SET file_source = 
REGEXP_REPLACE (file_source, 's:[0-9]?[0-9]?[0-9]', 's:12') Where TYPE = 2;

与 s:1小号:31和 s:111

参见 https://dbfiddle.uk/?rdbms=mariadb_10.4&fiddle=506350e8fa09b7270fb5e8b46c2e2f6f

关于mysql - 为什么我的 sql REGEXP_REPLACE 没有更改所有匹配项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57353743/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com