使用 REGEXP_REPLACE 的奇怪结果 - 字符串被聚合

Wierd result using REGEXP_REPLACE - strings are aggregated

我正在尝试使用 REGEXP_REPLACE 将一些字母替换为其他字母。

这是我的查询 - 我将使用 sakila 样本数据库:

SELECT first_name,
       CONVERT(REGEXP_REPLACE(first_name,'a','d') USING utf16) AS replaced
FROM sakila.actor

这是结果 (MySql Workbench, 8.0.11) - 如您所见,结果是 "aggregated":

我尝试用 this fiddle 复制它,但它没有复制。

为什么会这样?

  • 为什么要使用 utf16?

  • 为什么在 REPLACE 完成工作时使用 REGEXP_REPLACE? (切换可能解决问题。)

  • 某些版本中存在一个错误,可能导致结果越来越长。请参阅 https://bugs.mysql.com/bug.php?id=90803 ,它已在 8.0.12 中修复。升级.

  • 使用什么版本的Workbench并不重要;您使用的 MySQL 是什么版本。