Mysql TRIM() 不工作

Mysql TRIM() not working

我不确定为什么 TRIM()RTRIM() 不适合我。

SELECT TRIM('YV4.3x2.8SA-2 ');

返回 'YV4.3x2.8SA-2 '

我无法删除所有 space,因为字符串之间可能包含 space。

试试这个 SELECT TRIM(BOTH ' ' FROM 'YV4.3x2.8SA-2 ');

所以,that last character is 0xC2A0, not 0x20 (space). That is UTF-8 encoding for Unicode code point U+00A0, also known as a non-breaking space


要使用 TRIM() 删除这些,请为 remstr 传递 convert(0xC2A0 using utf8mb4):

select TRIM(convert(0xC2A0 using utf8mb4) FROM 'YV4.3x2.8SA-2 ');

(SQL Fiddle demo)


如果您可能混合使用这些字符和空格,删除两者的最简单方法是首先将 NBSP 替换为常规空格,然后将结果传递给 TRIM():

select TRIM(REPLACE('YV4.3x2.8SA-2 ', convert(0xC2A0 using utf8mb4), ' '));

(SQL Fiddle demo, 混合空格)