首页 > 解决方案 > 如何在mysql查询中删除句子中的多余空格

问题描述

我有一个表格,其中包含可能在单词开头、结尾或中间有额外空格的句子。如果它在句子的开头或结尾,则可以使用 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

标签: mysqlstringphpmyadmintrim

解决方案


只需执行以下操作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           |
+---------------------------+-------------------------------+

推荐阅读