我想删除字符串之间的空格。空间计数不是固定的。这该怎么做? 例如:
'ABCD 123'
'ABCD 123'
答案 0 :(得分:4)
您可以使用replace()
技巧:
select replace(replace(replace(col, ' ', '><'), '<>', ''), '><', ' ')
这假定该字符串不包含用于替换的字符。 (可以使用任何一对字符。)
如果您的字符串始终采用建议的形式-两个仅在中间带有空格的字符串,您也可以这样做:
select concat(substring_index(col, ' ', 1), ' ',
substring_index(col, ' ', -1)
)
编辑:
如果要删除所有 个空格,只需执行以下操作:
replace(str, ' ', '')
上面是留一个空格。
答案 1 :(得分:3)
为完善答案,在MySQL 8+中,我们可以尝试使用REGEXP_REPLACE
:
SELECT REGEXP_REPLACE(col, '[ ]+', '') AS col_out
FROM yourTable;
如果您想在单词之间保持一个空格,则只需将替换项留一个空格而不是空字符串即可。
答案 2 :(得分:0)
在不知道使用此功能的更大范围的情况下,我建议您研究一下replace函数。
REPLACE('ABCD 123',' ','')
答案 3 :(得分:0)
使用substring_index
set @str='ABC 123';
select concat(a , b) as "Result String"
from
(
select substring_index(@str,' ',1) a ,substring_index(@str,' ',-1) b
) q;
Result String
-------------
ABC123