Isso parece um comportamento estranho, e recebo o mesmo na linha de comando do MySQL como via db<>fiddle:
create table t(foo varchar(255));
insert into t (foo) values ('the quick brown fox'), ('jumped over the lazy dog');
select * from t;
| foo | | :----------------------- | | a rápida raposa marrom | | saltou sobre o cão preguiçoso |
select regexp_replace(foo, '[^a-z]+', '-') from t;
| regexp_replace(foo, '[^az]+', '-') | | :------------------------------------------ | | a-raposa-marrom-rápida | | a-raposa-marrom-rápida-pulou-sobre-o-cachorro-preguiçoso |
db<>fique aqui
Eu esperaria ver:
select REGEXP_REPLACE(foo, '[^a-z]+', '-') from t;
| REGEXP_REPLACE(foo, '[^az]+', '-') | | :---------------------------------- | | a-raposa-marrom-rápida | | saltou-sobre-o-cachorro-preguiçoso |
Estou fazendo algo errado ou isso é um bug do MySQL?
É um bug conhecido , corrigido no
8.0.12
.