gpt4 book ai didi

mysql regexp_replace 更新

转载 作者:行者123 更新时间:2023-11-29 07:32:59 24 4
gpt4 key购买 nike

我刚刚将 MySQL 升级到 8.0.11 以便能够使用 regexp_replace。它在 select 语句中工作正常,但是当我在更新中使用它时,我得到奇怪的结果。这是一个简化的示例:如果我有一个包含“567890”的字段,并且我将其更新为:

update test set field = regexp_replace(field, '[7]', 'z')

字段值不是“56z890”,而是设置为“56”。

这一定是一个错误,但与此同时,是否有任何解决方法可以让它按预期工作?谢谢。

最佳答案

它看起来像是 REGEXP_REPLACE 的错误功能。在 MariaDB 中,它按预期工作,请参阅 dbfiddle .

我会尝试在 bugs.mysql.com 中报告错误. Bug 已经报告,Bug #90803 regexp_replace accumulating resultBug #90870 REGEXP_REPLACE truncate UPDATE .

解决方法是:

UPDATE `test`
SET `field` = CAST(REGEXP_REPLACE(`field`, '[7]', 'z') AS CHAR);

参见 dbfiddle .

关于mysql regexp_replace 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50309333/

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