为什么 REGEXP_REPLACE 与先前的结果连接?

Jac*_*las 3 mysql mysql-8.0

这看起来像奇怪的行为,我在 MySQL 命令行上得到与通过 db<>fiddle 相同的结果:

create table t(foo varchar(255));
Run Code Online (Sandbox Code Playgroud)
insert into t (foo) values
('the quick brown fox'),
('jumped over the lazy dog');
Run Code Online (Sandbox Code Playgroud)
select * from t;
Run Code Online (Sandbox Code Playgroud)
| 富|
| :--------------- |
| 快速的棕色狐狸| 高分辨率照片| CLIPARTO
| 跳过懒狗| 高分辨率照片| CLIPARTO
select regexp_replace(foo, '[^a-z]+', '-') from t;
Run Code Online (Sandbox Code Playgroud)
| regexp_replace(foo, '[^az]+', '-') |
| :------------------------------------------ |
| 快速棕色狐狸| 高分辨率照片| CLIPARTO
| the-quick-brown-foxjumped-over-the-lazy-dog |

db<>在这里摆弄

我希望看到:

select REGEXP_REPLACE(foo, '[^a-z]+', '-') from t;
Run Code Online (Sandbox Code Playgroud)
| REGEXP_REPLACE(foo, '[^az]+', '-') |
| :---------------------------------- |
| 快速棕色狐狸| 高分辨率照片| CLIPARTO
| 跳过懒惰的狗| 高分辨率照片| CLIPARTO

我做错了什么还是这是一个 MySQL 错误?

Phi*_*lᵀᴹ 5

这是一个已知错误,已在8.0.12.

REGEXP_RELACE() 来自一个结果集行的结果可以结转到下一行,从而导致当前行中先前结果的累积。