如何删除 mysql 查询中句子中的多余空格

how to remove extra spaces in a sentences inside mysql query

我有一个 table,其中包含的句子可能在单词的开头、结尾或中间有额外的空格。 如果它在句子的开头或结尾,它可以使用 TRIM 函数删除但是我如何检查单词之间以删除多余的空格并只留下一个

create table messages(sent varchar(200), verif int);
insert into messages values
   ('Hi how are you alex ', null),
   (' Hi alex how are you ', null),
   ('  Hi  alex  how  are    you  ', null);

select * from messages;

UPDATE messages set sent = TRIM(sent);

select * from messages;

这里有一个演示可以更好地了解我的情况Table Demo

只需做一个 REGEX_REPLACE,类似于:

select sent,REGEXP_REPLACE(sent,' +',' ') from messages;

应该产生:

+---------------------------+-------------------------------+
| sent                      | REGEXP_REPLACE(sent,' +',' ') |
+---------------------------+-------------------------------+
| Hi how are you alex       | Hi how are you alex           |
| Hi alex how are you       | Hi alex how are you           |
| Hi  alex  how  are    you | Hi alex how are you           |
+---------------------------+-------------------------------+