尝试删除字符串中的额外空格,例如
1. AMERICAN RESTAUR ANT ---> AMERICAN RESTAURANT
2. SCHOOL OF BUSINESS ----> SCHOOL OF BUSINESS
3. COMMUNITY SE RVICE ----> COMMUNITY SERVICE
4. THE RINK-LAKEWOO D ----> THE RINK-LAKEWOOD
我使用以下链接删除了MySQL : how to remove double or more spaces from a string?
我可以使用上面链接
中的一个功能直到这个1. AMERICAN RESTAUR ANT ---> AMERICAN RESTAURANT
2. SCHOOL OF BUSINESS ----> SCHOOL OF BUSINESS
3. COMMUNITY SE RVICE ----> COMMUNITY SE RVICE
4. THE RINK-LAKEWOO D ----> THE RINK-LAKEWOO D
你能帮帮我吗。
答案 0 :(得分:1)
这对我有用
trim(preg_replace('/[\s\t\n\r\s]+/', ' ', $text_to_clean_up))
您可以替换或删除字符串中多余的空格和行。
答案 1 :(得分:0)
我不确定您是否可以在纯SQL解决方案中有效地执行此操作。我将使用的一般方法是执行正则表达式搜索以查找非空白字符,后跟2个或更多空格,后跟非空白字符。在你的第三个例子中,结果将是三个正则表达式组...
Group 1 - "SE"
Group 2 - " "
Group 3 - "RVICE"
这是我认为你需要走出SQL之外的部分。如果您使用了拼写检查API,则可以应用以下逻辑...
如果组1不在字典中,并且组3不在字典中,但组1和3的串联在字典中,则删除空格。继续我们的榜样......
" SE"不在字典里。 "起动转矩"不在字典里。 " SERVICE"在字典中,所以删除之间的空格。
即使这种方法也不完美。如果你举一个例如" OVER FLOW"两者都将在字典中,并且不会删除空格。
本身并不是解决方案,但希望能提供一些有用的食物。
答案 2 :(得分:0)
尝试以下代码:我希望哪些有用:
select replace(replace(replace(replace(replace(replace(text1,' ','~'),' ','%'),'~~',''),'~%',''),'%',' '),'~',' ') from temp1
请参阅以下链接,我尝试了您的示例: http://sqlfiddle.com/#!2/b51833/1