Mysql TRIM()不起作用

时间:2018-04-10 09:25:03

标签: mysql mariadb trim

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

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

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

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

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 ');

SQL Fiddle demo

如果你可能混合使用这些字符和空格,最简单的方法就是首先用常规空格替换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 ');