我不确定为什么,TRIM()
或RTRIM()
不适合我。
SELECT TRIM('YV4.3x2.8SA-2 ');
正在返回'YV4.3x2.8SA-2 '
。
我无法删除所有空格,因为字符串之间可能包含空格。
答案 0 :(得分:3)
所以,that last character is 0xC2A0
,而非0x20
(空格)。这是Unicode代码点U + 00A0的UTF-8编码,也称为non-breaking space。
要使用TRIM()
删除这些内容,请convert(0xC2A0 using utf8mb4)
传递remstr
:
select TRIM(convert(0xC2A0 using utf8mb4) FROM 'YV4.3x2.8SA-2 ');
如果你可能混合使用这些字符和空格,最简单的方法就是首先用常规空格替换NBSP,然后将结果传递给TRIM()
:
select TRIM(REPLACE('YV4.3x2.8SA-2 ', convert(0xC2A0 using utf8mb4), ' '));
(SQL Fiddle demo,混合了空格)
答案 1 :(得分:0)
试试这个SELECT TRIM(BOTH ' ' FROM 'YV4.3x2.8SA-2 ');