如何删除 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 |
+---------------------------+-------------------------------+
我有一个 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 |
+---------------------------+-------------------------------+